]> Cypherpunks repositories - gostls13.git/commitdiff
all: use slices.Sorted(maps.Keys(m))
authorTobias Klauser <tklauser@distanz.ch>
Wed, 2 Oct 2024 11:00:17 +0000 (13:00 +0200)
committerGopher Robot <gobot@golang.org>
Wed, 2 Oct 2024 14:22:59 +0000 (14:22 +0000)
Use slices.Sorted(maps.Keys(m)) to get a sorted slices of the keys in
a map.

Do not change packages built during bootstrap, as the bootstrap compiler
(currently 1.22.6) does not have the required maps and slices functions.

Change-Id: Ie35565d241fa14aca56b730a69af010127b659ab
Reviewed-on: https://go-review.googlesource.com/c/go/+/617356
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>

src/archive/tar/writer.go
src/database/sql/sql.go
src/internal/coverage/cformat/format.go
src/internal/coverage/encodecounter/encode.go
src/mime/mediatype.go
src/mime/multipart/writer.go
src/net/http/cgi/cgi_main.go
src/net/http/clientserver_test.go
src/net/url/url.go
src/testing/fstest/testfs.go

index dcefc2a8f8ced2b2f65673703cb29c911dad30ad..059669767f2b9db811c31ebca3293218a77687c1 100644 (file)
@@ -9,6 +9,7 @@ import (
        "fmt"
        "io"
        "io/fs"
+       "maps"
        "path"
        "slices"
        "strings"
@@ -169,16 +170,10 @@ func (tw *Writer) writePAXHeader(hdr *Header, paxHdrs map[string]string) error {
        // Write PAX records to the output.
        isGlobal := hdr.Typeflag == TypeXGlobalHeader
        if len(paxHdrs) > 0 || isGlobal {
-               // Sort keys for deterministic ordering.
-               var keys []string
-               for k := range paxHdrs {
-                       keys = append(keys, k)
-               }
-               slices.Sort(keys)
-
                // Write each record to a buffer.
                var buf strings.Builder
-               for _, k := range keys {
+               // Sort keys for deterministic ordering.
+               for _, k := range slices.Sorted(maps.Keys(paxHdrs)) {
                        rec, err := formatPAXRecord(k, paxHdrs[k])
                        if err != nil {
                                return err
index c247a9b506bfabb38b03ed1f160116370fde0572..b7cf3d12fa8d26321180a84002173714bec35882 100644 (file)
@@ -21,6 +21,7 @@ import (
        "errors"
        "fmt"
        "io"
+       "maps"
        "math/rand/v2"
        "reflect"
        "runtime"
@@ -75,12 +76,7 @@ func unregisterAllDrivers() {
 func Drivers() []string {
        driversMu.RLock()
        defer driversMu.RUnlock()
-       list := make([]string, 0, len(drivers))
-       for name := range drivers {
-               list = append(list, name)
-       }
-       slices.Sort(list)
-       return list
+       return slices.Sorted(maps.Keys(drivers))
 }
 
 // A NamedArg is a named argument. NamedArg values may be used as
index 0f9e981df8b12d88427a3285e9b5a68ab231442b..4df0e70b81ca6e34232775f126cb8b73f04d68c2 100644 (file)
@@ -36,6 +36,7 @@ import (
        "internal/coverage"
        "internal/coverage/cmerge"
        "io"
+       "maps"
        "slices"
        "strings"
        "text/tabwriter"
@@ -174,12 +175,7 @@ func (fm *Formatter) EmitTextual(w io.Writer) error {
        if _, err := fmt.Fprintf(w, "mode: %s\n", fm.cm.String()); err != nil {
                return err
        }
-       pkgs := make([]string, 0, len(fm.pm))
-       for importpath := range fm.pm {
-               pkgs = append(pkgs, importpath)
-       }
-       slices.Sort(pkgs)
-       for _, importpath := range pkgs {
+       for _, importpath := range slices.Sorted(maps.Keys(fm.pm)) {
                p := fm.pm[importpath]
                units := make([]extcu, 0, len(p.unitTable))
                for u := range p.unitTable {
@@ -281,14 +277,8 @@ func (fm *Formatter) EmitFuncs(w io.Writer) error {
        allStmts := uint64(0)
        covStmts := uint64(0)
 
-       pkgs := make([]string, 0, len(fm.pm))
-       for importpath := range fm.pm {
-               pkgs = append(pkgs, importpath)
-       }
-       slices.Sort(pkgs)
-
        // Emit functions for each package, sorted by import path.
-       for _, importpath := range pkgs {
+       for _, importpath := range slices.Sorted(maps.Keys(fm.pm)) {
                p := fm.pm[importpath]
                if len(p.unitTable) == 0 {
                        continue
index d50827014b2065a3801ee92c17ef9533ca568e92..82fd328faf8125d7b5f92d21940ccd17edaadadf 100644 (file)
@@ -13,6 +13,7 @@ import (
        "internal/coverage/stringtab"
        "internal/coverage/uleb128"
        "io"
+       "maps"
        "os"
        "slices"
 )
@@ -122,11 +123,7 @@ func (cfw *CoverageDataWriter) writeSegmentPreamble(args map[string]string, ws *
        }
        cfw.csh.StrTabLen = uint32(len(ws.BytesWritten())) - hdrsz
 
-       akeys := make([]string, 0, len(args))
-       for k := range args {
-               akeys = append(akeys, k)
-       }
-       slices.Sort(akeys)
+       akeys := slices.Sorted(maps.Keys(args))
 
        wrULEB128 := func(v uint) error {
                cfw.tmp = cfw.tmp[:0]
index 97f3563a2d01dffc832c9ced934dc817b0f516bb..f0a0be2155c87ba0980a89aca27c806c1b3388a9 100644 (file)
@@ -7,6 +7,7 @@ package mime
 import (
        "errors"
        "fmt"
+       "maps"
        "slices"
        "strings"
        "unicode"
@@ -33,13 +34,7 @@ func FormatMediaType(t string, param map[string]string) string {
                b.WriteString(strings.ToLower(sub))
        }
 
-       attrs := make([]string, 0, len(param))
-       for a := range param {
-               attrs = append(attrs, a)
-       }
-       slices.Sort(attrs)
-
-       for _, attribute := range attrs {
+       for _, attribute := range slices.Sorted(maps.Keys(param)) {
                value := param[attribute]
                b.WriteByte(';')
                b.WriteByte(' ')
index 5e589c499b339e35d96efb12220e81f08230de53..818970d7a7bcc9e1bad27f172bede2cbb6c5aba7 100644 (file)
@@ -10,6 +10,7 @@ import (
        "errors"
        "fmt"
        "io"
+       "maps"
        "net/textproto"
        "slices"
        "strings"
@@ -107,12 +108,7 @@ func (w *Writer) CreatePart(header textproto.MIMEHeader) (io.Writer, error) {
                fmt.Fprintf(&b, "--%s\r\n", w.boundary)
        }
 
-       keys := make([]string, 0, len(header))
-       for k := range header {
-               keys = append(keys, k)
-       }
-       slices.Sort(keys)
-       for _, k := range keys {
+       for _, k := range slices.Sorted(maps.Keys(header)) {
                for _, v := range header[k] {
                        fmt.Fprintf(&b, "%s: %s\r\n", k, v)
                }
index 033036d07fb17a6f932c149527c4babf3981ea97..1435f1b779c468d4259a81747b83588c9dbd8334 100644 (file)
@@ -7,6 +7,7 @@ package cgi
 import (
        "fmt"
        "io"
+       "maps"
        "net/http"
        "os"
        "path"
@@ -63,22 +64,12 @@ func testCGI() {
 
        fmt.Printf("test=Hello CGI\r\n")
 
-       keys := make([]string, 0, len(params))
-       for k := range params {
-               keys = append(keys, k)
-       }
-       slices.Sort(keys)
-       for _, key := range keys {
+       for _, key := range slices.Sorted(maps.Keys(params)) {
                fmt.Printf("param-%s=%s\r\n", key, params.Get(key))
        }
 
        envs := envMap(os.Environ())
-       keys = make([]string, 0, len(envs))
-       for k := range envs {
-               keys = append(keys, k)
-       }
-       slices.Sort(keys)
-       for _, key := range keys {
+       for _, key := range slices.Sorted(maps.Keys(envs)) {
                fmt.Printf("env-%s=%s\r\n", key, envs[key])
        }
 
index 0c2142a0639c74f1786794f54500de929330302f..3734e28afb1d08010cb6219f691340f284cbeee2 100644 (file)
@@ -17,6 +17,7 @@ import (
        "hash"
        "io"
        "log"
+       "maps"
        "net"
        . "net/http"
        "net/http/httptest"
@@ -689,12 +690,6 @@ func testCancelRequestMidBody(t *testing.T, mode testMode) {
 func TestTrailersClientToServer(t *testing.T) { run(t, testTrailersClientToServer) }
 func testTrailersClientToServer(t *testing.T, mode testMode) {
        cst := newClientServerTest(t, mode, HandlerFunc(func(w ResponseWriter, r *Request) {
-               var decl []string
-               for k := range r.Trailer {
-                       decl = append(decl, k)
-               }
-               slices.Sort(decl)
-
                slurp, err := io.ReadAll(r.Body)
                if err != nil {
                        t.Errorf("Server reading request body: %v", err)
@@ -705,6 +700,7 @@ func testTrailersClientToServer(t *testing.T, mode testMode) {
                if r.Trailer == nil {
                        io.WriteString(w, "nil Trailer")
                } else {
+                       decl := slices.Sorted(maps.Keys(r.Trailer))
                        fmt.Fprintf(w, "decl: %v, vals: %s, %s",
                                decl,
                                r.Trailer.Get("Client-Trailer-A"),
index 9af192fa1f29de36cce22fc009b9827bb819824c..8a8de1c6a8bdb5b56942355c1368b8a4773d3ce2 100644 (file)
@@ -13,6 +13,7 @@ package url
 import (
        "errors"
        "fmt"
+       "maps"
        "path"
        "slices"
        "strconv"
@@ -1004,12 +1005,7 @@ func (v Values) Encode() string {
                return ""
        }
        var buf strings.Builder
-       keys := make([]string, 0, len(v))
-       for k := range v {
-               keys = append(keys, k)
-       }
-       slices.Sort(keys)
-       for _, k := range keys {
+       for _, k := range slices.Sorted(maps.Keys(v)) {
                vs := v[k]
                keyEscaped := QueryEscape(k)
                for _, v := range vs {
index 76a2cff62d5608e3df53cba8557e9f64afe3e134..2917a303b20adfed093f1fcf8504a6507af80653 100644 (file)
@@ -10,6 +10,7 @@ import (
        "fmt"
        "io"
        "io/fs"
+       "maps"
        "path"
        "slices"
        "strings"
@@ -71,13 +72,7 @@ func testFS(fsys fs.FS, expected ...string) error {
        }
        delete(found, ".")
        if len(expected) == 0 && len(found) > 0 {
-               var list []string
-               for k := range found {
-                       if k != "." {
-                               list = append(list, k)
-                       }
-               }
-               slices.Sort(list)
+               list := slices.Sorted(maps.Keys(found))
                if len(list) > 15 {
                        list = append(list[:10], "...")
                }