From 00f32fbe7ab053f67e255d1350a34e05b07a6ad6 Mon Sep 17 00:00:00 2001 From: Baokun Lee Date: Sat, 14 Jul 2018 04:17:19 +0800 Subject: [PATCH] cmd/go: fix module replace flag parsed bug In CL 122404, we change -replace syntax from => to =. And we also need to change this and the tests. Fixes golang/go#26373. Change-Id: I2d4e85e10c1578540cc7673b93d849270940d776 Reviewed-on: https://go-review.googlesource.com/123778 Reviewed-by: Bryan C. Mills Run-TryBot: Bryan C. Mills --- src/cmd/go/internal/modcmd/mod.go | 2 +- src/cmd/go/mod_test.go | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cmd/go/internal/modcmd/mod.go b/src/cmd/go/internal/modcmd/mod.go index d8ae1d95ac027..ddf5000dd84f2 100644 --- a/src/cmd/go/internal/modcmd/mod.go +++ b/src/cmd/go/internal/modcmd/mod.go @@ -400,7 +400,7 @@ func flagReplace(arg string) { if i = strings.Index(arg, "="); i < 0 { base.Fatalf("go mod: -replace=%s: need old@v=new[@v] (missing =)", arg) } - old, new := strings.TrimSpace(arg[:i]), strings.TrimSpace(arg[i+2:]) + old, new := strings.TrimSpace(arg[:i]), strings.TrimSpace(arg[i+1:]) if strings.HasPrefix(new, ">") { base.Fatalf("go mod: -replace=%s: separator between old and new is =, not =>", arg) } diff --git a/src/cmd/go/mod_test.go b/src/cmd/go/mod_test.go index f3dc64cc374b8..6cd9f8a948f3b 100644 --- a/src/cmd/go/mod_test.go +++ b/src/cmd/go/mod_test.go @@ -383,8 +383,8 @@ func TestModEdit(t *testing.T) { "-droprequire=x.2", "-exclude=x.1 @ v1.2.0", "-exclude=x.1@v1.2.1", - "-replace=x.1@v1.3.0=>y.1@v1.4.0", - "-replace=x.1@v1.4.0 => ../z", + "-replace=x.1@v1.3.0=y.1@v1.4.0", + "-replace=x.1@v1.4.0 = ../z", ) mustHaveGoMod(`module x.x/y/z @@ -451,8 +451,8 @@ require x.3 v1.99.0 } tg.run("mod", - "-replace=x.1@v1.3.0=>y.1/v2@v2.3.5", - "-replace=x.1@v1.4.0=>y.1/v2@v2.3.5", + "-replace=x.1@v1.3.0=y.1/v2@v2.3.5", + "-replace=x.1@v1.4.0=y.1/v2@v2.3.5", ) mustHaveGoMod(`module x.x/y/z @@ -466,7 +466,7 @@ replace ( require x.3 v1.99.0 `) tg.run("mod", - "-replace=x.1=>y.1/v2@v2.3.6", + "-replace=x.1=y.1/v2@v2.3.6", ) mustHaveGoMod(`module x.x/y/z