build: modernize Go usage

This commit modernizes Go usage. This was done with:

go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...

Then files needed to be `go fmt`ed and a few comments needed to be
restored.

The modernizations include replacing

- if/else conditional assignment by a call to the built-in min or max functions added in go1.21
- sort.Slice(x, func(i, j int) bool) { return s[i] < s[j] } by a call to slices.Sort(s), added in go1.21
- interface{} by the 'any' type added in go1.18
- append([]T(nil), s...) by slices.Clone(s) or slices.Concat(s), added in go1.21
- loop around an m[k]=v map update by a call to one of the Collect, Copy, Clone, or Insert functions from the maps package, added in go1.21
- []byte(fmt.Sprintf...) by fmt.Appendf(nil, ...), added in go1.19
- append(s[:i], s[i+1]...) by slices.Delete(s, i, i+1), added in go1.21
- a 3-clause for i := 0; i < n; i++ {} loop by for i := range n {}, added in go1.22
This commit is contained in:
Nick Craig-Wood
2025-02-26 21:08:12 +00:00
parent 431386085f
commit 401cf81034
206 changed files with 755 additions and 953 deletions

28
lib/cache/cache.go vendored
View File

@@ -16,7 +16,7 @@ type Cache struct {
expireRunning bool
expireDuration time.Duration // expire the cache entry when it is older than this
expireInterval time.Duration // interval to run the cache expire
finalize func(value interface{})
finalize func(value any)
}
// New creates a new cache with the default expire duration and interval
@@ -26,7 +26,7 @@ func New() *Cache {
expireRunning: false,
expireDuration: 300 * time.Second,
expireInterval: 60 * time.Second,
finalize: func(_ interface{}) {},
finalize: func(_ any) {},
}
}
@@ -56,17 +56,17 @@ func (c *Cache) SetExpireInterval(d time.Duration) *Cache {
// cacheEntry is stored in the cache
type cacheEntry struct {
value interface{} // cached item
err error // creation error
key string // key
lastUsed time.Time // time used for expiry
pinCount int // non zero if the entry should not be removed
value any // cached item
err error // creation error
key string // key
lastUsed time.Time // time used for expiry
pinCount int // non zero if the entry should not be removed
}
// CreateFunc is called to create new values. If the create function
// returns an error it will be cached if ok is true, otherwise the
// error will just be returned, allowing negative caching if required.
type CreateFunc func(key string) (value interface{}, ok bool, error error)
type CreateFunc func(key string) (value any, ok bool, error error)
// used marks an entry as accessed now and kicks the expire timer off
// should be called with the lock held
@@ -80,7 +80,7 @@ func (c *Cache) used(entry *cacheEntry) {
// Get gets a value named key either from the cache or creates it
// afresh with the create function.
func (c *Cache) Get(key string, create CreateFunc) (value interface{}, err error) {
func (c *Cache) Get(key string, create CreateFunc) (value any, err error) {
c.mu.Lock()
entry, ok := c.cache[key]
if !ok {
@@ -125,7 +125,7 @@ func (c *Cache) Unpin(key string) {
}
// PutErr puts a value named key with err into the cache
func (c *Cache) PutErr(key string, value interface{}, err error) {
func (c *Cache) PutErr(key string, value any, err error) {
c.mu.Lock()
defer c.mu.Unlock()
if c.noCache() {
@@ -141,12 +141,12 @@ func (c *Cache) PutErr(key string, value interface{}, err error) {
}
// Put puts a value named key into the cache
func (c *Cache) Put(key string, value interface{}) {
func (c *Cache) Put(key string, value any) {
c.PutErr(key, value, nil)
}
// GetMaybe returns the key and true if found, nil and false if not
func (c *Cache) GetMaybe(key string) (value interface{}, found bool) {
func (c *Cache) GetMaybe(key string) (value any, found bool) {
c.mu.Lock()
defer c.mu.Unlock()
entry, found := c.cache[key]
@@ -192,7 +192,7 @@ func (c *Cache) DeletePrefix(prefix string) (deleted int) {
//
// If there was an existing item at newKey then it takes precedence
// and is returned otherwise the item (if any) at oldKey is returned.
func (c *Cache) Rename(oldKey, newKey string) (value interface{}, found bool) {
func (c *Cache) Rename(oldKey, newKey string) (value any, found bool) {
c.mu.Lock()
if newEntry, newFound := c.cache[newKey]; newFound {
// If new entry is found use that
@@ -255,7 +255,7 @@ func (c *Cache) Entries() int {
}
// SetFinalizer sets a function to be called when a value drops out of the cache
func (c *Cache) SetFinalizer(finalize func(interface{})) {
func (c *Cache) SetFinalizer(finalize func(any)) {
c.mu.Lock()
c.finalize = finalize
c.mu.Unlock()