diff options
| author | Shulhan <m.shulhan@gmail.com> | 2024-10-26 00:48:33 +0700 |
|---|---|---|
| committer | Shulhan <m.shulhan@gmail.com> | 2026-02-03 18:04:30 +0700 |
| commit | 011e40da85bddf83fee0ded83cb9115b7a88b3d4 (patch) | |
| tree | 355cc352e66fc64ce94f17658c31e699aa798bb1 | |
| parent | 85232e51b20971e0d211b25fa3aa412bc7987404 (diff) | |
| download | go-011e40da85bddf83fee0ded83cb9115b7a88b3d4.tar.xz | |
all: prealloc slice with possible minimum capabilities
55 files changed, 83 insertions, 76 deletions
diff --git a/src/archive/tar/reader_test.go b/src/archive/tar/reader_test.go index c7611ca044..5abbf3632e 100644 --- a/src/archive/tar/reader_test.go +++ b/src/archive/tar/reader_test.go @@ -791,7 +791,7 @@ func (rbs *readBadSeeker) Seek(int64, int) (int64, error) { return 0, fmt.Errorf // that truncated files are still detected even if the underlying io.Reader // satisfies io.Seeker. func TestReadTruncation(t *testing.T) { - var ss []string + ss := make([]string, 0, 4) for _, p := range []string{ "testdata/gnu.tar", "testdata/ustar-file-reg.tar", diff --git a/src/archive/zip/zip_test.go b/src/archive/zip/zip_test.go index 5a6689a0eb..e891d26c10 100644 --- a/src/archive/zip/zip_test.go +++ b/src/archive/zip/zip_test.go @@ -240,8 +240,8 @@ func (r *rleBuffer) ReadAt(p []byte, off int64) (n int, err error) { // Just testing the rleBuffer used in the Zip64 test above. Not used by the zip code. func TestRLEBuffer(t *testing.T) { b := new(rleBuffer) - var all []byte writes := []string{"abcdeee", "eeeeeee", "eeeefghaaiii"} + all := make([]byte, 0, len(writes)*len(writes[0])) for _, w := range writes { b.Write([]byte(w)) all = append(all, w...) diff --git a/src/cmd/api/main_test.go b/src/cmd/api/main_test.go index ed366be4e7..5bce3fd43b 100644 --- a/src/cmd/api/main_test.go +++ b/src/cmd/api/main_test.go @@ -168,7 +168,7 @@ func Check(t *testing.T) { bw := bufio.NewWriter(os.Stdout) defer bw.Flush() - var required []string + var required = make([]string, 0, len(checkFiles)) for _, file := range checkFiles { required = append(required, fileFeatures(file, needApproval(file))...) } @@ -657,7 +657,7 @@ func (w *Walker) importFrom(fromPath, fromDir string, mode types.ImportMode) (*a filenames := append(append([]string{}, info.GoFiles...), info.CgoFiles...) // Parse package files. - var files []*ast.File + var files = make([]*ast.File, 0, len(filenames)) for _, file := range filenames { f, err := w.parseFile(dir, file) if err != nil { diff --git a/src/cmd/asm/internal/asm/endtoend_test.go b/src/cmd/asm/internal/asm/endtoend_test.go index 28dce50d60..2ab6aa8ec4 100644 --- a/src/cmd/asm/internal/asm/endtoend_test.go +++ b/src/cmd/asm/internal/asm/endtoend_test.go @@ -368,7 +368,7 @@ func testErrors(t *testing.T, goarch, file string, flags ...string) { } delete(errors, fileline) } - var extra []string + extra := make([]string, 0, len(errors)) for key := range errors { extra = append(extra, key) } diff --git a/src/cmd/asm/internal/lex/input.go b/src/cmd/asm/internal/lex/input.go index 342ac5ac48..518ba4372a 100644 --- a/src/cmd/asm/internal/lex/input.go +++ b/src/cmd/asm/internal/lex/input.go @@ -301,7 +301,7 @@ func (in *Input) invokeMacro(macro *Macro) { return } actuals := in.argsFor(macro) - var tokens []Token + tokens := make([]Token, 0, len(macro.tokens)) for _, tok := range macro.tokens { if tok.ScanToken != scanner.Ident { tokens = append(tokens, tok) diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 300ccae350..f75d87f89e 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -293,9 +293,11 @@ func (f *File) loadDefines(gccOptions []string) bool { func (p *Package) guessKinds(f *File) []*Name { // Determine kinds for names we already know about, // like #defines or 'struct foo', before bothering with gcc. - var names, needType []*Name + keys := nameKeys(f.Name) + names := make([]*Name, 0, len(keys)) + needType := make([]*Name, 0, len(keys)) optional := map[*Name]bool{} - for _, key := range nameKeys(f.Name) { + for _, key := range keys { n := f.Name[key] // If we've already found this name as a #define // and we can translate it as a constant value, do so. diff --git a/src/cmd/compile/internal/ssa/loopbce.go b/src/cmd/compile/internal/ssa/loopbce.go index aa6cc48cac..1aa987e5b6 100644 --- a/src/cmd/compile/internal/ssa/loopbce.go +++ b/src/cmd/compile/internal/ssa/loopbce.go @@ -84,7 +84,7 @@ func parseIndVar(ind *Value) (min, inc, nxt *Value, loopReturn Edge) { // // exit_loop: func findIndVar(f *Func) []indVar { - var iv []indVar + iv := make([]indVar, 0, len(f.Blocks)) sdom := f.Sdom() for _, b := range f.Blocks { diff --git a/src/cmd/compile/internal/ssa/regalloc.go b/src/cmd/compile/internal/ssa/regalloc.go index a0257f3064..d51d41ed30 100644 --- a/src/cmd/compile/internal/ssa/regalloc.go +++ b/src/cmd/compile/internal/ssa/regalloc.go @@ -1000,10 +1000,10 @@ var tmpVal Value func (s *regAllocState) regalloc(f *Func) { regValLiveSet := f.newSparseSet(f.NumValues()) // set of values that may be live in register defer f.retSparseSet(regValLiveSet) - var oldSched []*Value - var phis []*Value - var phiRegs []register - var args []*Value + oldSched := make([]*Value, 0, len(s.visitOrder)) + phis := make([]*Value, 0, len(s.visitOrder)) + phiRegs := make([]register, 0, len(s.visitOrder)) + args := make([]*Value, 0, len(s.visitOrder)) // Data structure used for computing desired registers. var desired desiredState @@ -2298,7 +2298,7 @@ func (s *regAllocState) placeSpills() { } // Insert spill instructions into the block schedules. - var oldSched []*Value + oldSched := make([]*Value, 0, len(s.visitOrder)) for _, b := range s.visitOrder { nfirst := 0 for _, v := range b.Values { diff --git a/src/cmd/compile/internal/ssa/schedule.go b/src/cmd/compile/internal/ssa/schedule.go index 8006253145..a459eb4328 100644 --- a/src/cmd/compile/internal/ssa/schedule.go +++ b/src/cmd/compile/internal/ssa/schedule.go @@ -460,7 +460,7 @@ func storeOrder(values []*Value, sset *sparseSet, storeNumber []int32) []*Value } w = w.MemoryArg() } - var stack []*Value + stack := make([]*Value, 0, len(values)) for _, v := range values { if sset.contains(v.ID) { // in sset means v is a store, or already pushed to stack, or already assigned a store number diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go index 17feb90df7..cb0508350f 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -937,7 +937,7 @@ func dumpSourcesColumn(writer *ssa.HTMLWriter, fn *ir.Func) { } // Read sources of inlined functions. - var inlFns []*ssa.FuncLines + inlFns := make([]*ssa.FuncLines, 0, len(ssaDumpInlined)) for _, fi := range ssaDumpInlined { elno := fi.Endlineno fname := base.Ctxt.PosTable.Pos(fi.Pos()).Filename() diff --git a/src/cmd/compile/internal/test/ssa_test.go b/src/cmd/compile/internal/test/ssa_test.go index 7d213fceca..c4bd28e6e6 100644 --- a/src/cmd/compile/internal/test/ssa_test.go +++ b/src/cmd/compile/internal/test/ssa_test.go @@ -76,7 +76,6 @@ func TestCode(t *testing.T) { tmpdir := t.TempDir() // Find all the test functions (and the files containing them). - var srcs []string // files containing Test functions type test struct { name string // TestFoo usesFloat bool // might use float operations @@ -86,6 +85,7 @@ func TestCode(t *testing.T) { if err != nil { t.Fatalf("can't read testdata directory: %v", err) } + srcs := make([]string, 0, len(files)) // files containing Test functions for _, f := range files { if !strings.HasSuffix(f.Name(), "_test.go") { continue diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index e4250e12de..91ea7eb498 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -737,7 +737,7 @@ func runInstall(pkg string, ch chan struct{}) { // Start final link command line. // Note: code below knows that link.p[targ] is the target. var ( - link []string + link = make([]string, 0, 1) targ int ispackcmd bool ) @@ -1967,7 +1967,7 @@ func cmdlist() { brokenFlag := flag.Bool("broken", false, "include broken ports") xflagparse(0) - var plats []string + plats := make([]string, 0, len(cgoEnabled)) for p := range cgoEnabled { if broken[p] && !*brokenFlag { continue @@ -1990,7 +1990,7 @@ func cmdlist() { FirstClass bool Broken bool `json:",omitempty"` } - var results []jsonResult + results := make([]jsonResult, 0, len(plats)) for _, p := range plats { fields := strings.Split(p, "/") results = append(results, jsonResult{ diff --git a/src/cmd/go/internal/doc/pkg.go b/src/cmd/go/internal/doc/pkg.go index 3c36d0e05c..f965801889 100644 --- a/src/cmd/go/internal/doc/pkg.go +++ b/src/cmd/go/internal/doc/pkg.go @@ -443,7 +443,7 @@ func (pkg *Package) formatTypeParams(list *ast.FieldList, depth int) string { // oneLineField returns a one-line summary of the field. func (pkg *Package) oneLineField(field *ast.Field, depth int) string { - var names []string + names := make([]string, 0, len(field.Names)) for _, name := range field.Names { names = append(names, name.Name) } diff --git a/src/cmd/go/internal/load/flag_test.go b/src/cmd/go/internal/load/flag_test.go index 0c2363cb79..2c27f96529 100644 --- a/src/cmd/go/internal/load/flag_test.go +++ b/src/cmd/go/internal/load/flag_test.go @@ -96,7 +96,7 @@ var ppfTests = []ppfTest{ } func ppfDirTest(pattern string, nmatch int, dirs ...string) ppfTest { - var pkgs []ppfTestPackage + pkgs := make([]ppfTestPackage, 0, len(dirs)) for i, d := range dirs { flags := []string{} if i < nmatch { diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go index e2a77d7d7d..7f19a99ba2 100644 --- a/src/cmd/go/internal/load/pkg.go +++ b/src/cmd/go/internal/load/pkg.go @@ -3269,7 +3269,7 @@ func GoFilesPackage(loaderstate *modload.State, ctx context.Context, opts Packag // to make it look like this is a standard package or // command directory. So that local imports resolve // consistently, the files must all be in the same directory. - var dirent []fs.FileInfo + dirent := make([]os.FileInfo, 0, len(gofiles)) var dir string for _, file := range gofiles { fi, err := fsys.Stat(file) diff --git a/src/cmd/go/internal/load/test.go b/src/cmd/go/internal/load/test.go index e5c074fa19..3278a821e1 100644 --- a/src/cmd/go/internal/load/test.go +++ b/src/cmd/go/internal/load/test.go @@ -110,7 +110,7 @@ func TestPackagesAndErrors(loaderstate *modload.State, ctx context.Context, done pre.preloadImports(loaderstate, ctx, opts, allImports, p.Internal.Build) var ptestErr, pxtestErr *PackageError - var imports, ximports []*Package + imports := make([]*Package, 0, len(p.TestImports)) var stk ImportStack var testEmbed, xtestEmbed map[string][]string var incomplete bool @@ -145,6 +145,7 @@ func TestPackagesAndErrors(loaderstate *modload.State, ctx context.Context, done pxtestNeedsPtest := false var pxtestIncomplete bool rawXTestImports := str.StringList(p.XTestImports) + ximports := make([]*Package, 0, len(p.XTestImports)) for i, path := range p.XTestImports { p1, err := loadImport(loaderstate, ctx, opts, pre, path, p.Dir, p, &stk, p.Internal.Build.XTestImportPos[path], ResolveImport) if err != nil && pxtestErr == nil { diff --git a/src/cmd/go/internal/mvs/mvs.go b/src/cmd/go/internal/mvs/mvs.go index 50f8cb61cc..599845f5d3 100644 --- a/src/cmd/go/internal/mvs/mvs.go +++ b/src/cmd/go/internal/mvs/mvs.go @@ -242,7 +242,7 @@ func Req(mainModule module.Version, base []string, reqs Reqs) ([]module.Version, return nil } // First walk the base modules that must be listed. - var min []module.Version + min := make([]module.Version, 0, len(base)) haveBase := map[string]bool{} for _, path := range base { if haveBase[path] { diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go index 9309aa65ed..354e2b8d69 100644 --- a/src/cmd/go/internal/test/test.go +++ b/src/cmd/go/internal/test/test.go @@ -960,7 +960,7 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) { } // Collect all the packages imported by the packages being tested. - allImports := make(map[*load.Package]bool) + allImports := make(map[*load.Package]bool, len(pkgs)) for _, p := range pkgs { if p.Error != nil && p.Error.IsImportCycle { continue diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go index 75d05d65de..f2966e9fdd 100644 --- a/src/cmd/go/internal/work/build.go +++ b/src/cmd/go/internal/work/build.go @@ -730,7 +730,7 @@ func runInstall(ctx context.Context, cmd *base.Command, args []string) { // omitTestOnly returns pkgs with test-only packages removed. func omitTestOnly(pkgs []*load.Package) []*load.Package { - var list []*load.Package + list := make([]*load.Package, 0, len(pkgs)) for _, p := range pkgs { if len(p.GoFiles)+len(p.CgoFiles) == 0 && !p.Internal.CmdlinePkgLiteral { // Package has no source files, diff --git a/src/cmd/go/internal/work/gc.go b/src/cmd/go/internal/work/gc.go index 6300a9135b..6c85096247 100644 --- a/src/cmd/go/internal/work/gc.go +++ b/src/cmd/go/internal/work/gc.go @@ -407,7 +407,7 @@ func (gcToolchain) asm(b *Builder, a *Action, sfiles []string) ([]string, error) p := a.Package args := asmArgs(a, p) - var ofiles []string + ofiles := make([]string, 0, len(sfiles)) for _, sfile := range sfiles { ofile := a.Objdir + sfile[:len(sfile)-len(".s")] + ".o" ofiles = append(ofiles, ofile) diff --git a/src/cmd/go/internal/work/gccgo.go b/src/cmd/go/internal/work/gccgo.go index 276e082b71..3d714ba970 100644 --- a/src/cmd/go/internal/work/gccgo.go +++ b/src/cmd/go/internal/work/gccgo.go @@ -197,7 +197,7 @@ func buildImportcfgSymlinks(sh *Shell, root string, importcfg []byte) error { func (tools gccgoToolchain) asm(b *Builder, a *Action, sfiles []string) ([]string, error) { p := a.Package - var ofiles []string + ofiles := make([]string, 0, len(sfiles)) for _, sfile := range sfiles { base := filepath.Base(sfile) ofile := a.Objdir + base[:len(base)-len(".s")] + ".o" diff --git a/src/cmd/internal/edit/edit.go b/src/cmd/internal/edit/edit.go index 2d470f4c8a..57c0820eb1 100644 --- a/src/cmd/internal/edit/edit.go +++ b/src/cmd/internal/edit/edit.go @@ -71,7 +71,7 @@ func (b *Buffer) Bytes() []byte { // to be applied before a replacement of the text at [x, y). sort.Stable(b.q) - var new []byte + new := make([]byte, 0, len(b.q)) offset := 0 for i, e := range b.q { if e.start < offset { diff --git a/src/cmd/internal/objfile/elf.go b/src/cmd/internal/objfile/elf.go index 6988cea936..bf8d18307c 100644 --- a/src/cmd/internal/objfile/elf.go +++ b/src/cmd/internal/objfile/elf.go @@ -32,7 +32,7 @@ func (f *elfFile) symbols() ([]Sym, error) { return nil, err } - var syms []Sym + syms := make([]Sym, 0, len(elfSyms)) for _, s := range elfSyms { sym := Sym{Addr: s.Value, Name: s.Name, Size: int64(s.Size), Code: '?'} switch s.Section { diff --git a/src/cmd/internal/objfile/macho.go b/src/cmd/internal/objfile/macho.go index eaf665faee..1acb6804d5 100644 --- a/src/cmd/internal/objfile/macho.go +++ b/src/cmd/internal/objfile/macho.go @@ -45,7 +45,7 @@ func (f *machoFile) symbols() ([]Sym, error) { } slices.Sort(addrs) - var syms []Sym + syms := make([]Sym, 0, len(f.macho.Symtab.Syms)) for _, s := range f.macho.Symtab.Syms { if s.Type&stabTypeMask != 0 { // Skip stab debug info. diff --git a/src/cmd/internal/objfile/pe.go b/src/cmd/internal/objfile/pe.go index e94821298f..a0f2456ca3 100644 --- a/src/cmd/internal/objfile/pe.go +++ b/src/cmd/internal/objfile/pe.go @@ -30,11 +30,11 @@ func openPE(r io.ReaderAt) (rawFile, error) { func (f *peFile) symbols() ([]Sym, error) { // Build sorted list of addresses of all symbols. // We infer the size of a symbol by looking at where the next symbol begins. - var addrs []uint64 + addrs := make([]uint64, 0, len(f.pe.Symbols)) imageBase, _ := f.imageBase() - var syms []Sym + syms := make([]Sym, 0, len(f.pe.Symbols)) for _, s := range f.pe.Symbols { const ( N_UNDEF = 0 // An undefined (extern) symbol diff --git a/src/cmd/internal/objfile/plan9obj.go b/src/cmd/internal/objfile/plan9obj.go index edd40230ce..648a355f9f 100644 --- a/src/cmd/internal/objfile/plan9obj.go +++ b/src/cmd/internal/objfile/plan9obj.go @@ -45,7 +45,7 @@ func (f *plan9File) symbols() ([]Sym, error) { // Build sorted list of addresses of all symbols. // We infer the size of a symbol by looking at where the next symbol begins. - var addrs []uint64 + addrs := make([]uint64, 0, len(plan9Syms)) for _, s := range plan9Syms { if !validSymType[s.Type] { continue @@ -54,7 +54,7 @@ func (f *plan9File) symbols() ([]Sym, error) { } slices.Sort(addrs) - var syms []Sym + syms := make([]Sym, 0, len(plan9Syms)) for _, s := range plan9Syms { if !validSymType[s.Type] { diff --git a/src/cmd/internal/objfile/xcoff.go b/src/cmd/internal/objfile/xcoff.go index 85928621f1..f1dc5dafa3 100644 --- a/src/cmd/internal/objfile/xcoff.go +++ b/src/cmd/internal/objfile/xcoff.go @@ -27,7 +27,7 @@ func openXcoff(r io.ReaderAt) (rawFile, error) { } func (f *xcoffFile) symbols() ([]Sym, error) { - var syms []Sym + syms := make([]Sym, 0, len(f.xcoff.Symbols)) for _, s := range f.xcoff.Symbols { const ( N_UNDEF = 0 // An undefined (extern) symbol diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index bcad5add4a..f04c45d18d 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2649,8 +2649,9 @@ func ldshlibsyms(ctxt *Link, shlib string) { Errorf("cannot read dep list from shared library %s: %v", libpath, err) return } - var deps []string - for _, dep := range strings.Split(string(depsbytes), "\n") { + depsSplit := strings.Split(string(depsbytes), "\n") + deps := make([]string, 0, len(depsSplit)) + for _, dep := range depsSplit { if dep == "" { continue } diff --git a/src/cmd/link/internal/ld/macho_combine_dwarf.go b/src/cmd/link/internal/ld/macho_combine_dwarf.go index 2b303cbdae..353dbd7327 100644 --- a/src/cmd/link/internal/ld/macho_combine_dwarf.go +++ b/src/cmd/link/internal/ld/macho_combine_dwarf.go @@ -229,7 +229,7 @@ func machoCompressSections(ctxt *Link, dwarfm *macho.File) ([]*macho.Section, [] } dwarfseg := dwarfm.Segment("__DWARF") - var sects []*macho.Section + sects := make([]*macho.Section, 0, len(dwarfm.Sections)) var buf bytes.Buffer for _, sect := range dwarfm.Sections { diff --git a/src/cmd/link/internal/ld/xcoff.go b/src/cmd/link/internal/ld/xcoff.go index 8edd4ccad8..ee507ca29f 100644 --- a/src/cmd/link/internal/ld/xcoff.go +++ b/src/cmd/link/internal/ld/xcoff.go @@ -1353,10 +1353,10 @@ func Loaderblk(ctxt *Link, off uint64) { } func (f *xcoffFile) writeLdrScn(ctxt *Link, globalOff uint64) { - var symtab []*XcoffLdSym64 - var strtab []*XcoffLdStr64 - var importtab []*XcoffLdImportFile64 - var reloctab []*XcoffLdRel64 + symtab := make([]*XcoffLdSym64, 0, len(f.loaderSymbols)) + strtab := make([]*XcoffLdStr64, 0, len(f.loaderSymbols)) + importtab := make([]*XcoffLdImportFile64, 0, len(f.dynLibraries)) + reloctab := make([]*XcoffLdRel64, 0, len(f.loaderReloc)) var dynimpreloc []*XcoffLdRel64 // As the string table is updated in any loader subsection, diff --git a/src/cmd/link/internal/loadxcoff/ldxcoff.go b/src/cmd/link/internal/loadxcoff/ldxcoff.go index 8c0949ec70..85333cea1d 100644 --- a/src/cmd/link/internal/loadxcoff/ldxcoff.go +++ b/src/cmd/link/internal/loadxcoff/ldxcoff.go @@ -46,14 +46,14 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read return nil, fmt.Errorf("loadxcoff: %v: %v", pn, fmt.Sprintf(str, args...)) } - var ldSections []*ldSection - f, err := xcoff.NewFile((*xcoffBiobuf)(input)) if err != nil { return nil, err } defer f.Close() + ldSections := make([]*ldSection, 0, len(f.Sections)) + for _, sect := range f.Sections { //only text, data and bss section if sect.Type < xcoff.STYP_TEXT || sect.Type > xcoff.STYP_BSS { diff --git a/src/cmd/vendor/golang.org/x/mod/modfile/rule.go b/src/cmd/vendor/golang.org/x/mod/modfile/rule.go index c5b8305de7..739e45b034 100644 --- a/src/cmd/vendor/golang.org/x/mod/modfile/rule.go +++ b/src/cmd/vendor/golang.org/x/mod/modfile/rule.go @@ -1791,7 +1791,7 @@ func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, to // Duplicate require and retract directives are not removed. // Drop killed statements from the syntax tree. - var stmts []Expr + stmts := make([]Expr, 0, len(syntax.Stmt)) for _, stmt := range syntax.Stmt { switch stmt := stmt.(type) { case *Line: diff --git a/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go b/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go index 117985ac30..3c6b0ffa12 100644 --- a/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go +++ b/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go @@ -118,7 +118,7 @@ func HashZip(zipfile string, hash Hash) (string, error) { return "", err } defer z.Close() - var files []string + files := make([]string, 0, len(z.File)) zfiles := make(map[string]*zip.File) for _, file := range z.File { files = append(files, file.Name) diff --git a/src/crypto/x509/x509.go b/src/crypto/x509/x509.go index 7953b615f5..54362ae8f5 100644 --- a/src/crypto/x509/x509.go +++ b/src/crypto/x509/x509.go @@ -1152,7 +1152,7 @@ func oidInExtensions(oid asn1.ObjectIdentifier, extensions []pkix.Extension) boo // marshalSANs marshals a list of addresses into a the contents of an X.509 // SubjectAlternativeName extension. func marshalSANs(dnsNames, emailAddresses []string, ipAddresses []net.IP, uris []*url.URL) (derBytes []byte, err error) { - var rawValues []asn1.RawValue + rawValues := make([]asn1.RawValue, 0, len(dnsNames)) for _, name := range dnsNames { if err := isIA5String(name); err != nil { return nil, err @@ -2016,7 +2016,7 @@ func parseCSRExtensions(rawAttributes []asn1.RawValue) ([]pkix.Extension, error) Values []asn1.RawValue `asn1:"set"` } - var ret []pkix.Extension + var ret = make([]pkix.Extension, 0, len(rawAttributes)) requestedExts := make(map[string]bool) for _, rawAttr := range rawAttributes { var attr pkcs10Attribute diff --git a/src/go/build/build.go b/src/go/build/build.go index 68fb8dbbd7..696638b176 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -234,8 +234,9 @@ func (ctxt *Context) isFile(path string) bool { // gopath returns the list of Go path directories. func (ctxt *Context) gopath() []string { - var all []string - for _, p := range ctxt.splitPathList(ctxt.GOPATH) { + gopaths := ctxt.splitPathList(ctxt.GOPATH) + all := make([]string, 0, len(gopaths)) + for _, p := range gopaths { if p == "" || p == ctxt.GOROOT { // Empty paths are uninteresting. // If the path is the GOROOT, ignore it. diff --git a/src/go/doc/example.go b/src/go/doc/example.go index 8c01bf0a8d..af5cee0119 100644 --- a/src/go/doc/example.go +++ b/src/go/doc/example.go @@ -48,7 +48,7 @@ type Example struct { // least one top-level function, type, variable, or constant declaration // other than the example function. func Examples(testFiles ...*ast.File) []*Example { - var list []*Example + var list []*Example = make([]*Example, 0, len(testFiles)) for _, file := range testFiles { hasTests := false // file contains tests, fuzz test, or benchmarks numDecl := 0 // number of non-import declarations in the file @@ -550,7 +550,7 @@ func playExampleFile(file *ast.File) *ast.File { } // Copy declaration slice, rewriting the ExampleX function to main. - var decls []ast.Decl + decls := make([]ast.Decl, 0, len(file.Decls)) for _, d := range file.Decls { if f, ok := d.(*ast.FuncDecl); ok && isTest(f.Name.Name, "Example") { // Copy the FuncDecl, as it may be used elsewhere. diff --git a/src/go/doc/reader.go b/src/go/doc/reader.go index e84d6d9a71..8c53026c0f 100644 --- a/src/go/doc/reader.go +++ b/src/go/doc/reader.go @@ -915,7 +915,7 @@ func sortedFuncs(m methodSet, allMethods bool) []*Func { // noteBodies returns a list of note body strings given a list of notes. // This is only used to populate the deprecated Package.Bugs field. func noteBodies(notes []*Note) []string { - var list []string + list := make([]string, 0, len(notes)) for _, n := range notes { list = append(list, n.Body) } diff --git a/src/go/types/check_test.go b/src/go/types/check_test.go index fa84ea6070..396eca7ea4 100644 --- a/src/go/types/check_test.go +++ b/src/go/types/check_test.go @@ -60,7 +60,7 @@ var ( var fset = token.NewFileSet() func parseFiles(t *testing.T, filenames []string, srcs [][]byte, mode parser.Mode) ([]*ast.File, []error) { - var files []*ast.File + files := make([]*ast.File, 0, len(filenames)) var errlist []error for i, filename := range filenames { file, err := parser.ParseFile(fset, filename, srcs[i], mode) diff --git a/src/go/types/eval_test.go b/src/go/types/eval_test.go index fd62b7ab88..cfa973d099 100644 --- a/src/go/types/eval_test.go +++ b/src/go/types/eval_test.go @@ -166,7 +166,7 @@ func TestEvalPos(t *testing.T) { } fset := token.NewFileSet() - var files []*ast.File + files := make([]*ast.File, 0, len(sources)) for i, src := range sources { file, err := parser.ParseFile(fset, "p", src, parser.ParseComments) if err != nil { diff --git a/src/go/types/example_test.go b/src/go/types/example_test.go index d8e5de7476..0a54f9ed68 100644 --- a/src/go/types/example_test.go +++ b/src/go/types/example_test.go @@ -207,7 +207,7 @@ func fib(x int) int { lineCol := fmt.Sprintf("%d:%d", posn.Line, posn.Column) usesByObj[obj] = append(usesByObj[obj], lineCol) } - var items []string + items := make([]string, 0, len(usesByObj)) for obj, uses := range usesByObj { slices.Sort(uses) item := fmt.Sprintf("%s:\n defined at %s\n used at %s", diff --git a/src/go/types/issues_test.go b/src/go/types/issues_test.go index 3649189042..a1e0024f0f 100644 --- a/src/go/types/issues_test.go +++ b/src/go/types/issues_test.go @@ -160,7 +160,7 @@ L7 uses var z int` t.Errorf("Check: unexpected error: %s", s) } - var facts []string + facts := make([]string, 0, len(defs)) for id, obj := range defs { if obj != nil { fact := fmt.Sprintf("L%d defs %s", fset.Position(id.Pos()).Line, obj) diff --git a/src/go/types/resolver_test.go b/src/go/types/resolver_test.go index 680ee69c97..4117ca9fbd 100644 --- a/src/go/types/resolver_test.go +++ b/src/go/types/resolver_test.go @@ -118,7 +118,7 @@ func TestResolveIdents(t *testing.T) { // parse package files fset := token.NewFileSet() - var files []*ast.File + var files = make([]*ast.File, 0, len(sources)) for _, src := range sources { files = append(files, mustParse(fset, src)) } diff --git a/src/go/types/self_test.go b/src/go/types/self_test.go index b4cc6286a1..c0a0548bf0 100644 --- a/src/go/types/self_test.go +++ b/src/go/types/self_test.go @@ -108,7 +108,7 @@ func pkgFiles(fset *token.FileSet, path string) ([]*ast.File, error) { return nil, err } - var files []*ast.File + files := make([]*ast.File, 0, len(filenames)) for _, filename := range filenames { file, err := parser.ParseFile(fset, filename, nil, 0) if err != nil { diff --git a/src/go/types/stdlib_test.go b/src/go/types/stdlib_test.go index 7830029fb2..479cb13db7 100644 --- a/src/go/types/stdlib_test.go +++ b/src/go/types/stdlib_test.go @@ -373,7 +373,7 @@ func typecheckFiles(path string, filenames []string, importer Importer) (*Packag fset := token.NewFileSet() // Parse package files. - var files []*ast.File + var files = make([]*ast.File, 0, len(filenames)) for _, filename := range filenames { file, err := parser.ParseFile(fset, filename, nil, parser.AllErrors) if err != nil { @@ -445,7 +445,7 @@ func pkgFilenames(dir string, includeTest bool) ([]string, error) { // See go.dev/issue/46027. return nil, nil } - var filenames []string + var filenames = make([]string, 0, len(pkg.GoFiles)) for _, name := range pkg.GoFiles { filenames = append(filenames, filepath.Join(pkg.Dir, name)) } diff --git a/src/internal/profile/profile.go b/src/internal/profile/profile.go index afd1dd72ee..c8529d916d 100644 --- a/src/internal/profile/profile.go +++ b/src/internal/profile/profile.go @@ -507,7 +507,7 @@ type Demangler func(name []string) (map[string]string, error) // it will silently preserve the original names in case of any errors. func (p *Profile) Demangle(d Demangler) error { // Collect names to demangle. - var names []string + names := make([]string, 0, len(p.Function)) for _, fn := range p.Function { names = append(names, fn.SystemName) } diff --git a/src/internal/trace/traceviewer/mmu.go b/src/internal/trace/traceviewer/mmu.go index 190ce5afca..3de3b7fc2c 100644 --- a/src/internal/trace/traceviewer/mmu.go +++ b/src/internal/trace/traceviewer/mmu.go @@ -385,7 +385,7 @@ func (m *mmu) HandleDetails(w http.ResponseWriter, r *http.Request) { worst := mmuCurve.Examples(time.Duration(window), 10) // Construct a link for each window. - var links []linkedUtilWindow + links := make([]linkedUtilWindow, 0, len(worst)) for _, ui := range worst { links = append(links, m.newLinkedUtilWindow(ui, time.Duration(window))) } diff --git a/src/mime/quotedprintable/reader_test.go b/src/mime/quotedprintable/reader_test.go index 1ff858a69c..c12d2ca3db 100644 --- a/src/mime/quotedprintable/reader_test.go +++ b/src/mime/quotedprintable/reader_test.go @@ -197,7 +197,7 @@ func TestExhaustive(t *testing.T) { } res["OK"]++ }) - var outcomes []string + outcomes := make([]string, 0, len(res)) for k, v := range res { outcomes = append(outcomes, fmt.Sprintf("%v: %d", k, v)) } diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go index fc1d40f18b..f36446f159 100644 --- a/src/net/dnsclient_unix_test.go +++ b/src/net/dnsclient_unix_test.go @@ -1129,7 +1129,7 @@ func testRotate(t *testing.T, rotate bool, nameservers, wantServers []string) { } defer conf.teardown() - var confLines []string + confLines := make([]string, 0, len(nameservers)) for _, ns := range nameservers { confLines = append(confLines, "nameserver "+ns) } diff --git a/src/net/http/cookiejar/jar.go b/src/net/http/cookiejar/jar.go index db6bcddb26..bad2a67f13 100644 --- a/src/net/http/cookiejar/jar.go +++ b/src/net/http/cookiejar/jar.go @@ -219,7 +219,7 @@ func (j *Jar) cookies(u *url.URL, now time.Time) (cookies []*http.Cookie) { } modified := false - var selected []entry + selected := make([]entry, 0, len(submap)) for id, e := range submap { if e.Persistent && !e.Expires.After(now) { delete(submap, id) diff --git a/src/net/http/fs.go b/src/net/http/fs.go index 92bd94f72d..477d341f0b 100644 --- a/src/net/http/fs.go +++ b/src/net/http/fs.go @@ -1020,7 +1020,9 @@ func parseRange(s string, size int64) ([]httpRange, error) { if !strings.HasPrefix(s, b) { return nil, errors.New("invalid range") } - var ranges []httpRange + + splits := strings.Split(s[len(b):], ",") + ranges := make([]httpRange, 0, len(splits)) noOverlap := false for ra := range strings.SplitSeq(s[len(b):], ",") { ra = textproto.TrimString(ra) diff --git a/src/net/interface_linux_test.go b/src/net/interface_linux_test.go index 0699fec636..a9b274cd02 100644 --- a/src/net/interface_linux_test.go +++ b/src/net/interface_linux_test.go @@ -113,7 +113,7 @@ func TestParseProcNet(t *testing.T) { } }() - var ifmat4 []Addr + ifmat4 := make([]Addr, 0, len(igmpInterfaceTable)) for _, ifi := range igmpInterfaceTable { ifmat := parseProcNetIGMP("testdata/igmp", &ifi) ifmat4 = append(ifmat4, ifmat...) @@ -122,7 +122,7 @@ func TestParseProcNet(t *testing.T) { t.Fatalf("got %d; want %d", len(ifmat4), numOfTestIPv4MCAddrs) } - var ifmat6 []Addr + ifmat6 := make([]Addr, 0, len(igmp6InterfaceTable)) for _, ifi := range igmp6InterfaceTable { ifmat := parseProcNetIGMP6("testdata/igmp6", &ifi) ifmat6 = append(ifmat6, ifmat...) diff --git a/src/net/internal/socktest/switch.go b/src/net/internal/socktest/switch.go index dea6d9288c..1eb39b99ad 100644 --- a/src/net/internal/socktest/switch.go +++ b/src/net/internal/socktest/switch.go @@ -31,8 +31,8 @@ func (sw *Switch) init() { // Stats returns a list of per-cookie socket statistics. func (sw *Switch) Stats() []Stat { - var st []Stat sw.smu.RLock() + st := make([]Stat, 0, len(sw.stats)) for _, s := range sw.stats { ns := *s st = append(st, ns) diff --git a/src/runtime/callers_test.go b/src/runtime/callers_test.go index 9429442fc0..c4cea7ef87 100644 --- a/src/runtime/callers_test.go +++ b/src/runtime/callers_test.go @@ -40,7 +40,7 @@ func testCallers(t *testing.T, pcs []uintptr, pan bool) { } } - var seen []string + seen := make([]string, 0, len(m)) for k := range m { seen = append(seen, k) } diff --git a/src/runtime/crash_cgo_test.go b/src/runtime/crash_cgo_test.go index baf4523a7a..cfc45e91ac 100644 --- a/src/runtime/crash_cgo_test.go +++ b/src/runtime/crash_cgo_test.go @@ -711,7 +711,7 @@ func TestBigStackCallbackCgo(t *testing.T) { } func nextTrace(lines []string) ([]string, []string) { - var trace []string + trace := make([]string, 0, len(lines)) for n, line := range lines { if strings.HasPrefix(line, "---") { return trace, lines[n+1:] diff --git a/src/time/sleep_test.go b/src/time/sleep_test.go index c87f420f8f..3e96f29cd6 100644 --- a/src/time/sleep_test.go +++ b/src/time/sleep_test.go @@ -463,8 +463,8 @@ func testAfterQueuing1(delta Duration, after func(Duration) <-chan Time) error { for _, slot := range slots { go await(slot, result, After(Duration(slot)*delta)) } - var order []int - var times []Time + order := make([]int, 0, len(slots)) + times := make([]Time, 0, len(slots)) for range slots { r := <-result order = append(order, r.slot) |
