summaryrefslogtreecommitdiff
path: root/src/cmd/go/internal
diff options
context:
space:
mode:
authorcuiweixie <cuiweixie@gmail.com>2022-09-27 19:03:54 +0800
committerGopher Robot <gobot@golang.org>2022-09-29 21:28:10 +0000
commit32a52e039953889a3aaa6a3e7f0ad0f7dfcbeac3 (patch)
tree5d4c30de456530d2fbd99db5f710fed45df73ae7 /src/cmd/go/internal
parent2b45aebe145d24686df152d77f82713592c47b91 (diff)
downloadgo-git-32a52e039953889a3aaa6a3e7f0ad0f7dfcbeac3.tar.gz
cmd/go: using strings.CutPrefix replace strings.HasPrefix and strings.TrimPrefix
Change-Id: I143d05c24a3e897d0f3ee78dd16954c32ceae091 Reviewed-on: https://go-review.googlesource.com/c/go/+/435137 Run-TryBot: xie cui <523516579@qq.com> Run-TryBot: Bryan Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal')
-rw-r--r--src/cmd/go/internal/envcmd/env.go4
-rw-r--r--src/cmd/go/internal/modfetch/codehost/git.go4
-rw-r--r--src/cmd/go/internal/modfetch/coderepo.go10
-rw-r--r--src/cmd/go/internal/modload/load.go3
-rw-r--r--src/cmd/go/internal/modload/vendor.go8
-rw-r--r--src/cmd/go/internal/test/genflags.go5
-rw-r--r--src/cmd/go/internal/work/action.go4
7 files changed, 20 insertions, 18 deletions
diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
index 6dd8657bfc..2d8f7afd6b 100644
--- a/src/cmd/go/internal/envcmd/env.go
+++ b/src/cmd/go/internal/envcmd/env.go
@@ -453,8 +453,8 @@ func printEnvAsJSON(env []cfg.EnvVar) {
func getOrigEnv(key string) string {
for _, v := range cfg.OrigEnv {
- if strings.HasPrefix(v, key+"=") {
- return strings.TrimPrefix(v, key+"=")
+ if v, found := strings.CutPrefix(v, key+"="); found {
+ return v
}
}
return ""
diff --git a/src/cmd/go/internal/modfetch/codehost/git.go b/src/cmd/go/internal/modfetch/codehost/git.go
index 7127d6afe9..127ad264af 100644
--- a/src/cmd/go/internal/modfetch/codehost/git.go
+++ b/src/cmd/go/internal/modfetch/codehost/git.go
@@ -486,9 +486,9 @@ func (r *gitRepo) stat(rev string) (info *RevInfo, err error) {
// Either way, try a local stat before falling back to network I/O.
if !didStatLocal {
if info, err := r.statLocal(rev, hash); err == nil {
- if strings.HasPrefix(ref, "refs/tags/") {
+ if after, found := strings.CutPrefix(ref, "refs/tags/"); found {
// Make sure tag exists, so it will be in localTags next time the go command is run.
- Run(r.dir, "git", "tag", strings.TrimPrefix(ref, "refs/tags/"), hash)
+ Run(r.dir, "git", "tag", after, hash)
}
return info, nil
}
diff --git a/src/cmd/go/internal/modfetch/coderepo.go b/src/cmd/go/internal/modfetch/coderepo.go
index b72989b2a8..0aee381e17 100644
--- a/src/cmd/go/internal/modfetch/coderepo.go
+++ b/src/cmd/go/internal/modfetch/coderepo.go
@@ -1095,14 +1095,16 @@ func (r *codeRepo) Zip(dst io.Writer, version string) error {
}
topPrefix = zf.Name[:i+1]
}
- if !strings.HasPrefix(zf.Name, topPrefix) {
+ var name string
+ var found bool
+ if name, found = strings.CutPrefix(zf.Name, topPrefix); !found {
return fmt.Errorf("zip file contains more than one top-level directory")
}
- name := strings.TrimPrefix(zf.Name, topPrefix)
- if !strings.HasPrefix(name, subdir) {
+
+ if name, found = strings.CutPrefix(name, subdir); !found {
continue
}
- name = strings.TrimPrefix(name, subdir)
+
if name == "" || strings.HasSuffix(name, "/") {
continue
}
diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go
index 1527e0aa7a..e74780a7b2 100644
--- a/src/cmd/go/internal/modload/load.go
+++ b/src/cmd/go/internal/modload/load.go
@@ -548,13 +548,12 @@ func resolveLocalPackage(ctx context.Context, dir string, rs *Requirements) (str
modRoot := MainModules.ModRoot(mainModule)
if modRoot != "" && strings.HasPrefix(absDir, modRoot+string(filepath.Separator)) && !strings.Contains(absDir[len(modRoot):], "@") {
suffix := filepath.ToSlash(absDir[len(modRoot):])
- if strings.HasPrefix(suffix, "/vendor/") {
+ if pkg, found := strings.CutPrefix(suffix, "/vendor/"); found {
if cfg.BuildMod != "vendor" {
return "", fmt.Errorf("without -mod=vendor, directory %s has no package path", absDir)
}
readVendorList(mainModule)
- pkg := strings.TrimPrefix(suffix, "/vendor/")
if _, ok := vendorPkgModule[pkg]; !ok {
return "", fmt.Errorf("directory %s is not a package listed in vendor/modules.txt", absDir)
}
diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
index 5ea82a8620..e3690495cd 100644
--- a/src/cmd/go/internal/modload/vendor.go
+++ b/src/cmd/go/internal/modload/vendor.go
@@ -98,16 +98,16 @@ func readVendorList(mainModule module.Version) {
continue
}
- if strings.HasPrefix(line, "## ") {
+ if annonations, ok := strings.CutPrefix(line, "## "); ok {
// Metadata. Take the union of annotations across multiple lines, if present.
meta := vendorMeta[mod]
- for _, entry := range strings.Split(strings.TrimPrefix(line, "## "), ";") {
+ for _, entry := range strings.Split(annonations, ";") {
entry = strings.TrimSpace(entry)
if entry == "explicit" {
meta.Explicit = true
}
- if strings.HasPrefix(entry, "go ") {
- meta.GoVersion = strings.TrimPrefix(entry, "go ")
+ if goVersion, ok := strings.CutPrefix(entry, "go "); ok {
+ meta.GoVersion = goVersion
rawGoVersion.Store(mod, meta.GoVersion)
}
// All other tokens are reserved for future use.
diff --git a/src/cmd/go/internal/test/genflags.go b/src/cmd/go/internal/test/genflags.go
index f50ae5c1e9..8c7554919a 100644
--- a/src/cmd/go/internal/test/genflags.go
+++ b/src/cmd/go/internal/test/genflags.go
@@ -68,10 +68,11 @@ func testFlags() []string {
var names []string
flag.VisitAll(func(f *flag.Flag) {
- if !strings.HasPrefix(f.Name, "test.") {
+ var name string
+ var found bool
+ if name, found = strings.CutPrefix(f.Name, "test."); !found {
return
}
- name := strings.TrimPrefix(f.Name, "test.")
switch name {
case "testlogfile", "paniconexit0", "fuzzcachedir", "fuzzworker":
diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
index ae9afd2f12..5700f878af 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
@@ -372,8 +372,8 @@ func readpkglist(shlibpath string) (pkgs []*load.Package) {
scanner := bufio.NewScanner(bytes.NewBuffer(data))
for scanner.Scan() {
t := scanner.Text()
- if strings.HasPrefix(t, "pkgpath ") {
- t = strings.TrimPrefix(t, "pkgpath ")
+ var found bool
+ if t, found = strings.CutPrefix(t, "pkgpath "); found {
t = strings.TrimSuffix(t, ";")
pkgs = append(pkgs, load.LoadImportWithFlags(t, base.Cwd(), nil, &stk, nil, 0))
}