diff options
Diffstat (limited to 'src')
70 files changed, 113 insertions, 100 deletions
diff --git a/src/archive/tar/reader_test.go b/src/archive/tar/reader_test.go index 7e0462c3f8..77ef31f313 100644 --- a/src/archive/tar/reader_test.go +++ b/src/archive/tar/reader_test.go @@ -772,7 +772,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 e7661284e7..ca04c3d7be 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 7985055b5c..1363ade1b9 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 6e1aa1cd95..5981f9ed2c 100644 --- a/src/cmd/asm/internal/asm/endtoend_test.go +++ b/src/cmd/asm/internal/asm/endtoend_test.go @@ -363,7 +363,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 da4ebe6d6e..d9bbd90d82 100644 --- a/src/cmd/asm/internal/lex/input.go +++ b/src/cmd/asm/internal/lex/input.go @@ -309,7 +309,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/ast.go b/src/cmd/cgo/ast.go index 3cbbeafdca..861479db7a 100644 --- a/src/cmd/cgo/ast.go +++ b/src/cmd/cgo/ast.go @@ -181,7 +181,7 @@ func (f *File) ParseGo(abspath string, src []byte) { // Like ast.CommentGroup's Text method but preserves // leading blank lines, so that line numbers line up. func commentText(g *ast.CommentGroup) string { - var pieces []string + pieces := make([]string, 0, len(g.List)) for _, com := range g.List { c := com.Text // Remove comment markers. diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 6e7556de96..e5366435cc 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -281,9 +281,11 @@ func (p *Package) loadDefines(f *File) { 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/cgo/main.go b/src/cmd/cgo/main.go index fce2671c2c..111ccddffc 100644 --- a/src/cmd/cgo/main.go +++ b/src/cmd/cgo/main.go @@ -80,7 +80,7 @@ func (f *File) offset(p token.Pos) int { } func nameKeys(m map[string]*Name) []string { - var ks []string + ks := make([]string, 0, len(m)) for k := range m { ks = append(ks, k) } diff --git a/src/cmd/compile/internal/ssa/loopbce.go b/src/cmd/compile/internal/ssa/loopbce.go index dd1f39dbef..931dc60af7 100644 --- a/src/cmd/compile/internal/ssa/loopbce.go +++ b/src/cmd/compile/internal/ssa/loopbce.go @@ -83,7 +83,7 @@ func parseIndVar(ind *Value) (min, inc, nxt *Value) { // // 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 2325b9ee45..e65652c12b 100644 --- a/src/cmd/compile/internal/ssa/regalloc.go +++ b/src/cmd/compile/internal/ssa/regalloc.go @@ -892,10 +892,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 @@ -2082,7 +2082,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 fb38f40d63..d67d1d5a0b 100644 --- a/src/cmd/compile/internal/ssa/schedule.go +++ b/src/cmd/compile/internal/ssa/schedule.go @@ -440,7 +440,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 df933ec1cf..90388d2b0f 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -753,7 +753,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() @@ -4152,7 +4152,7 @@ type intrinsicKey struct { func InitTables() { intrinsics = map[intrinsicKey]intrinsicBuilder{} - var all []*sys.Arch + all := make([]*sys.Arch, 0, len(sys.Archs)) var p4 []*sys.Arch var p8 []*sys.Arch var lwatomics []*sys.Arch diff --git a/src/cmd/compile/internal/test/ssa_test.go b/src/cmd/compile/internal/test/ssa_test.go index 7f2faa1140..fb397820c7 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 96199bcbfa..f778c85475 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -707,7 +707,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 ) @@ -1914,7 +1914,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 @@ -1937,7 +1937,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/doc/pkg.go b/src/cmd/doc/pkg.go index a21d8a4688..bef480ab92 100644 --- a/src/cmd/doc/pkg.go +++ b/src/cmd/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/fix/typecheck.go b/src/cmd/fix/typecheck.go index b115987390..173de52e90 100644 --- a/src/cmd/fix/typecheck.go +++ b/src/cmd/fix/typecheck.go @@ -303,7 +303,7 @@ func typecheck(cfg *TypeConfig, f *ast.File) (typeof map[any]string, assign map[ var reportCgoError func(err error) func makeExprList(a []*ast.Ident) []ast.Expr { - var b []ast.Expr + b := make([]ast.Expr, 0, len(a)) for _, x := range a { b = append(b, x) } diff --git a/src/cmd/go/internal/base/path.go b/src/cmd/go/internal/base/path.go index 64f213b408..797cb37dd0 100644 --- a/src/cmd/go/internal/base/path.go +++ b/src/cmd/go/internal/base/path.go @@ -46,7 +46,7 @@ func ShortPath(path string) string { // RelPaths returns a copy of paths with absolute paths // made relative to the current directory if they would be shorter. func RelPaths(paths []string) []string { - var out []string + out := make([]string, 0, len(paths)) for _, p := range paths { rel, err := filepath.Rel(Cwd(), p) if err == nil && len(rel) < len(p) { diff --git a/src/cmd/go/internal/imports/scan.go b/src/cmd/go/internal/imports/scan.go index ee11a8708b..e18f28c351 100644 --- a/src/cmd/go/internal/imports/scan.go +++ b/src/cmd/go/internal/imports/scan.go @@ -98,7 +98,7 @@ Files: var ErrNoGo = fmt.Errorf("no Go source files") func keys(m map[string]bool) []string { - var list []string + list := make([]string, 0, len(m)) for k := range m { list = append(list, k) } diff --git a/src/cmd/go/internal/load/flag_test.go b/src/cmd/go/internal/load/flag_test.go index d3223e12d5..f0d970421d 100644 --- a/src/cmd/go/internal/load/flag_test.go +++ b/src/cmd/go/internal/load/flag_test.go @@ -95,7 +95,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 1549800afb..b06b597334 100644 --- a/src/cmd/go/internal/load/pkg.go +++ b/src/cmd/go/internal/load/pkg.go @@ -3180,7 +3180,7 @@ func GoFilesPackage(ctx context.Context, opts PackageOpts, gofiles []string) *Pa // 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 d09ababfdd..a35632b2bd 100644 --- a/src/cmd/go/internal/load/test.go +++ b/src/cmd/go/internal/load/test.go @@ -109,7 +109,7 @@ func TestPackagesAndErrors(ctx context.Context, done func(), opts PackageOpts, p pre.preloadImports(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 @@ -144,6 +144,7 @@ func TestPackagesAndErrors(ctx context.Context, done func(), opts PackageOpts, p 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(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 468a985927..f30677b3b6 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/search/search.go b/src/cmd/go/internal/search/search.go index 9f216d5756..e5949d318d 100644 --- a/src/cmd/go/internal/search/search.go +++ b/src/cmd/go/internal/search/search.go @@ -399,7 +399,7 @@ func CleanPatterns(patterns []string) []string { if len(patterns) == 0 { return []string{"."} } - var out []string + out := make([]string, 0, len(patterns)) for _, a := range patterns { var p, v string if build.IsLocalImport(a) || filepath.IsAbs(a) { diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go index 8a40547f2e..99d1c0a6f8 100644 --- a/src/cmd/go/internal/test/test.go +++ b/src/cmd/go/internal/test/test.go @@ -943,7 +943,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/action.go b/src/cmd/go/internal/work/action.go index a59072e591..b4f96988ab 100644 --- a/src/cmd/go/internal/work/action.go +++ b/src/cmd/go/internal/work/action.go @@ -208,7 +208,7 @@ func actionGraphJSON(a *Action) string { } } - var list []*actionJSON + list := make([]*actionJSON, 0, len(workq)) for id, a := range workq { if a.json == nil { a.json = &actionJSON{ diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go index 408edb5119..60034f3071 100644 --- a/src/cmd/go/internal/work/build.go +++ b/src/cmd/go/internal/work/build.go @@ -729,7 +729,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/exec.go b/src/cmd/go/internal/work/exec.go index f6aa2b3534..3200dd76a5 100644 --- a/src/cmd/go/internal/work/exec.go +++ b/src/cmd/go/internal/work/exec.go @@ -1069,8 +1069,9 @@ func (b *Builder) loadCachedVet(a *Action) error { if err != nil { return fmt.Errorf("reading srcfiles list: %w", err) } - var srcfiles []string - for _, name := range strings.Split(string(list), "\n") { + listSplits := strings.Split(string(list), "\n") + srcfiles := make([]string, 0, len(listSplits)) + for _, name := range listSplits { if name == "" { // end of list continue } @@ -1093,8 +1094,12 @@ func (b *Builder) loadCachedCompiledGoFiles(a *Action) error { if err != nil { return fmt.Errorf("reading srcfiles list: %w", err) } - var gofiles []string - for _, name := range strings.Split(string(list), "\n") { + var ( + listSplits = strings.Split(string(list), "\n") + gofiles = make([]string, 0, len(listSplits)) + name string + ) + for _, name = range listSplits { if name == "" { // end of list continue } else if !strings.HasSuffix(name, ".go") { diff --git a/src/cmd/go/internal/work/gc.go b/src/cmd/go/internal/work/gc.go index 09ea8259e0..541392ecc0 100644 --- a/src/cmd/go/internal/work/gc.go +++ b/src/cmd/go/internal/work/gc.go @@ -387,7 +387,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 { overlayPath, _ := fsys.OverlayPath(mkAbs(p.Dir, sfile)) ofile := a.Objdir + sfile[:len(sfile)-len(".s")] + ".o" @@ -463,7 +463,7 @@ func toolVerify(a *Action, b *Builder, p *load.Package, newTool string, ofile st } func (gcToolchain) pack(b *Builder, a *Action, afile string, ofiles []string) error { - var absOfiles []string + absOfiles := make([]string, 0, len(ofiles)) for _, f := range ofiles { absOfiles = append(absOfiles, mkAbs(a.Objdir, f)) } diff --git a/src/cmd/go/internal/work/gccgo.go b/src/cmd/go/internal/work/gccgo.go index 2dce9f1ace..e07f866739 100644 --- a/src/cmd/go/internal/work/gccgo.go +++ b/src/cmd/go/internal/work/gccgo.go @@ -194,7 +194,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" @@ -229,7 +229,7 @@ func (tools gccgoToolchain) pack(b *Builder, a *Action, afile string, ofiles []s p := a.Package sh := b.Shell(a) objdir := a.Objdir - var absOfiles []string + absOfiles := make([]string, 0, len(ofiles)) for _, f := range ofiles { absOfiles = append(absOfiles, mkAbs(objdir, f)) } 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 f25e4a65d6..e12e273684 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 c92497527a..cdea87d9a9 100644 --- a/src/cmd/internal/objfile/macho.go +++ b/src/cmd/internal/objfile/macho.go @@ -44,7 +44,7 @@ func (f *machoFile) symbols() ([]Sym, error) { } sort.Sort(uint64s(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 4c4be1e6b7..df7e5f8cea 100644 --- a/src/cmd/internal/objfile/pe.go +++ b/src/cmd/internal/objfile/pe.go @@ -29,11 +29,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 da0b345f53..86d052ec4d 100644 --- a/src/cmd/internal/objfile/plan9obj.go +++ b/src/cmd/internal/objfile/plan9obj.go @@ -44,7 +44,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 @@ -53,7 +53,7 @@ func (f *plan9File) symbols() ([]Sym, error) { } sort.Sort(uint64s(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 d6df4db8f0..fc32fc7c19 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 0219beeb10..0db830e2c8 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2528,8 +2528,9 @@ func ldshlibsyms(ctxt *Link, shlib string) { Errorf(nil, "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 2e8bfcdbed..4fb3465fe8 100644 --- a/src/cmd/link/internal/ld/macho_combine_dwarf.go +++ b/src/cmd/link/internal/ld/macho_combine_dwarf.go @@ -256,7 +256,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 d915ab393b..1ddd3a630b 100644 --- a/src/cmd/link/internal/ld/xcoff.go +++ b/src/cmd/link/internal/ld/xcoff.go @@ -1355,10 +1355,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 29d162596a..50b472047a 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/trace/annotations.go b/src/cmd/trace/annotations.go index df194a7598..bc586cb551 100644 --- a/src/cmd/trace/annotations.go +++ b/src/cmd/trace/annotations.go @@ -194,7 +194,7 @@ func httpUserTask(w http.ResponseWriter, r *http.Request) { base := time.Duration(firstTimestamp()) * time.Nanosecond // trace start - var data []entry + data := make([]entry, 0, len(tasks)) for _, task := range tasks { if !filter.match(task) { diff --git a/src/cmd/trace/annotations_test.go b/src/cmd/trace/annotations_test.go index 36d3ec9d6d..8707cd5058 100644 --- a/src/cmd/trace/annotations_test.go +++ b/src/cmd/trace/annotations_test.go @@ -149,7 +149,7 @@ func TestAnalyzeAnnotations(t *testing.T) { "task0.region1", "task0.region2", } - var gotRegions []string + gotRegions := make([]string, 0, len(res.regions)) for regionID := range res.regions { gotRegions = append(gotRegions, regionID.Type) } diff --git a/src/cmd/trace/goroutines.go b/src/cmd/trace/goroutines.go index 28eace82fa..ede7604056 100644 --- a/src/cmd/trace/goroutines.go +++ b/src/cmd/trace/goroutines.go @@ -61,7 +61,7 @@ func httpGoroutines(w http.ResponseWriter, r *http.Request) { gs1.ExecTime += g.ExecTime gss[g.PC] = gs1 } - var glist []gtype + glist := make([]gtype, 0, len(gss)) for k, v := range gss { v.ID = k // If goroutine didn't run during the trace (no sampled PC), @@ -107,7 +107,7 @@ func httpGoroutine(w http.ResponseWriter, r *http.Request) { } analyzeGoroutines(events) var ( - glist []*trace.GDesc + glist = make([]*trace.GDesc, 0, len(gs)) name string totalExecTime, execTime int64 maxTotalTime int64 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 35fd1f534c..cc91a8d430 100644 --- a/src/cmd/vendor/golang.org/x/mod/modfile/rule.go +++ b/src/cmd/vendor/golang.org/x/mod/modfile/rule.go @@ -1549,7 +1549,7 @@ func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace) { // 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 51ec4db873..7cd05740db 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 f33283b559..e93760c4f9 100644 --- a/src/crypto/x509/x509.go +++ b/src/crypto/x509/x509.go @@ -1059,7 +1059,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 @@ -1920,7 +1920,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/debug/macho/file.go b/src/debug/macho/file.go index 7b11bb2954..3298771619 100644 --- a/src/debug/macho/file.go +++ b/src/debug/macho/file.go @@ -707,8 +707,9 @@ func (f *File) ImportedSymbols() ([]string, error) { st := f.Symtab dt := f.Dysymtab - var all []string - for _, s := range st.Syms[dt.Iundefsym : dt.Iundefsym+dt.Nundefsym] { + symbols := st.Syms[dt.Iundefsym : dt.Iundefsym+dt.Nundefsym] + all := make([]string, 0, len(symbols)) + for _, s := range symbols { all = append(all, s.Name) } return all, nil diff --git a/src/go/build/build.go b/src/go/build/build.go index 9ce3700dc4..b63d55d5b8 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -232,8 +232,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 6687ba8614..78d0def3cb 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 @@ -548,7 +548,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 8f9fda41ff..f8626c6d7c 100644 --- a/src/go/doc/reader.go +++ b/src/go/doc/reader.go @@ -936,7 +936,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 fc9723a67f..c2d84781ab 100644 --- a/src/go/types/check_test.go +++ b/src/go/types/check_test.go @@ -61,7 +61,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 dd9bd7f426..d4bcc44148 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 1ee47bc123..1891f1c869 100644 --- a/src/go/types/example_test.go +++ b/src/go/types/example_test.go @@ -209,7 +209,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 { sort.Strings(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 6f9d5978e7..fb6aa231d5 100644 --- a/src/go/types/issues_test.go +++ b/src/go/types/issues_test.go @@ -161,7 +161,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 e95af80585..659896ed39 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 27fa75652a..165929b96e 100644 --- a/src/go/types/self_test.go +++ b/src/go/types/self_test.go @@ -109,7 +109,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 a89cd858db..06aa870734 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 { @@ -440,7 +440,7 @@ func pkgFilenames(dir string, includeTest bool) ([]string, error) { if excluded[pkg.ImportPath] { return nil, nil } - var filenames []string + 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/filter.go b/src/internal/profile/filter.go index 141dd1f405..3897b97f00 100644 --- a/src/internal/profile/filter.go +++ b/src/internal/profile/filter.go @@ -74,7 +74,7 @@ func (loc *Location) matchesName(re *regexp.Regexp) bool { // unmatchedLines returns the lines in the location that do not match // the regular expression. func (loc *Location) unmatchedLines(re *regexp.Regexp) []Line { - var lines []Line + lines := make([]Line, 0, len(loc.Line)) for _, ln := range loc.Line { if fn := ln.Function; fn != nil { if re.MatchString(fn.Name) { diff --git a/src/internal/profile/profile.go b/src/internal/profile/profile.go index 02d1bed3de..5d197341a1 100644 --- a/src/internal/profile/profile.go +++ b/src/internal/profile/profile.go @@ -561,7 +561,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/order.go b/src/internal/trace/order.go index 07a6e13ffe..5c6e78b285 100644 --- a/src/internal/trace/order.go +++ b/src/internal/trace/order.go @@ -58,7 +58,7 @@ func order1007(m map[int][]*Event) (events []*Event, err error) { // off of the profBuf queue. Re-sort them by the timestamp we captured // inside the signal handler. sort.Stable(eventList(m[ProfileP])) - var batches []*eventBatch + batches := make([]*eventBatch, 0, len(m)) for _, v := range m { pending += len(v) batches = append(batches, &eventBatch{v, false}) diff --git a/src/internal/trace/parser.go b/src/internal/trace/parser.go index 3bbfbebab4..a263421792 100644 --- a/src/internal/trace/parser.go +++ b/src/internal/trace/parser.go @@ -914,7 +914,7 @@ func symbolize(events []*Event, bin string) error { // Write all pcs to addr2line. // Need to copy pcs to an array, because map iteration order is non-deterministic. - var pcArray []uint64 + pcArray := make([]uint64, 0, len(pcs)) for pc := range pcs { pcArray = append(pcArray, pc) _, err := fmt.Fprintf(in, "0x%x\n", pc-1) diff --git a/src/internal/trace/traceviewer/mmu.go b/src/internal/trace/traceviewer/mmu.go index 0bc1233b44..fe21bfe2d8 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 0af1e5f0f7..01647840d4 100644 --- a/src/mime/quotedprintable/reader_test.go +++ b/src/mime/quotedprintable/reader_test.go @@ -193,7 +193,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 0da36303cc..2889a2c389 100644 --- a/src/net/dnsclient_unix_test.go +++ b/src/net/dnsclient_unix_test.go @@ -1054,7 +1054,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 59cde82cb3..8a6b34ced8 100644 --- a/src/net/http/cookiejar/jar.go +++ b/src/net/http/cookiejar/jar.go @@ -184,7 +184,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 af7511a7a4..45187eea14 100644 --- a/src/net/http/fs.go +++ b/src/net/http/fs.go @@ -961,9 +961,11 @@ 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.Split(s[len(b):], ",") { + for _, ra := range splits { ra = textproto.TrimString(ra) if ra == "" { continue 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 49a1d5a6f7..399be37a16 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 304f1a7554..8a7b3236ed 100644 --- a/src/runtime/crash_cgo_test.go +++ b/src/runtime/crash_cgo_test.go @@ -598,7 +598,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 b25606dfed..201a390642 100644 --- a/src/time/sleep_test.go +++ b/src/time/sleep_test.go @@ -373,8 +373,8 @@ func testAfterQueuing(delta Duration) 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) |
