From 48a58c5d2c24bcba9cd141b3c3d6344d52274bbd Mon Sep 17 00:00:00 2001 From: cui fliter Date: Tue, 27 Sep 2022 09:16:32 +0000 Subject: [PATCH] cmd/go/internal: use strings.CutSuffix Updates #42537 Change-Id: I2d4c5e911c8a2ddfe9a976896b05d3cd8be61f6b GitHub-Last-Rev: a87597d8a7a84c4975fb5e13004feda9b6abce34 GitHub-Pull-Request: golang/go#55830 Reviewed-on: https://go-review.googlesource.com/c/go/+/433275 TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Reviewed-by: Benny Siegert Run-TryBot: Ian Lance Taylor --- src/cmd/go/internal/clean/clean.go | 6 ++---- src/cmd/go/internal/load/pkg.go | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/cmd/go/internal/clean/clean.go b/src/cmd/go/internal/clean/clean.go index 2417cc077e..368288f0fc 100644 --- a/src/cmd/go/internal/clean/clean.go +++ b/src/cmd/go/internal/clean/clean.go @@ -340,16 +340,14 @@ func clean(p *load.Package) { continue } - if strings.HasSuffix(name, "_test.go") { - base := name[:len(name)-len("_test.go")] + if base, found := strings.CutSuffix(name, "_test.go"); found { allRemove = append(allRemove, base+".test", base+".test.exe") } - if strings.HasSuffix(name, ".go") { + if base, found := strings.CutSuffix(name, ".go"); found { // TODO(adg,rsc): check that this .go file is actually // in "package main", and therefore capable of building // to an executable file. - base := name[:len(name)-len(".go")] allRemove = append(allRemove, base, base+".exe") } } diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go index a6e380b89f..cebec51d42 100644 --- a/src/cmd/go/internal/load/pkg.go +++ b/src/cmd/go/internal/load/pkg.go @@ -3115,10 +3115,10 @@ func PackagesAndErrorsOutsideModule(ctx context.Context, opts PackageOpts, args } patterns := make([]string, len(args)) for i, arg := range args { - if !strings.HasSuffix(arg, "@"+version) { + p, found := strings.CutSuffix(arg, "@"+version) + if !found { return nil, fmt.Errorf("%s: all arguments must refer to packages in the same module at the same version (@%s)", arg, version) } - p := arg[:len(arg)-len(version)-1] switch { case build.IsLocalImport(p): return nil, fmt.Errorf("%s: argument must be a package path, not a relative path", arg) -- 2.50.0