]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.11] cmd/go: don't panic when go run is passed ... under nonexiste...
authorMark Rushakoff <mark.rushakoff@gmail.com>
Wed, 14 Nov 2018 19:34:48 +0000 (19:34 +0000)
committerIan Lance Taylor <iant@golang.org>
Wed, 14 Nov 2018 23:53:17 +0000 (23:53 +0000)
Given a nonexistent directory above a wildcard:

    go run ./nonexistent/...

Print this error instead of panicking:

    go run: no packages loaded from ./nonexistent/...

Updates #28696.
Fixes #28725

Change-Id: Iaa3bc5c78b14ef858d931778e1bc55ca626c5571
GitHub-Last-Rev: bb1a80483ad26c8cf646cf0900d08cfe49aba535
GitHub-Pull-Request: golang/go#28703
Reviewed-on: https://go-review.googlesource.com/c/148821
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
(cherry picked from commit 529ea7c0de1f9e582280c73031ae870f868e7908)
Reviewed-on: https://go-review.googlesource.com/c/149607
Run-TryBot: Ian Lance Taylor <iant@golang.org>

src/cmd/go/internal/run/run.go
src/cmd/go/testdata/script/run_wildcard.txt [new file with mode: 0644]

index 303e6842e7be3eb90b8268dae5c155b40e188886..feccf23b2782a868fbf822be029935a959d765ff 100644 (file)
@@ -78,6 +78,9 @@ func runRun(cmd *base.Command, args []string) {
                p = load.GoFilesPackage(files)
        } else if len(args) > 0 && !strings.HasPrefix(args[0], "-") {
                pkgs := load.PackagesAndErrors(args[:1])
+               if len(pkgs) == 0 {
+                       base.Fatalf("go run: no packages loaded from %s", args[0])
+               }
                if len(pkgs) > 1 {
                        var names []string
                        for _, p := range pkgs {
diff --git a/src/cmd/go/testdata/script/run_wildcard.txt b/src/cmd/go/testdata/script/run_wildcard.txt
new file mode 100644 (file)
index 0000000..cd401e0
--- /dev/null
@@ -0,0 +1,5 @@
+# Fix for https://github.com/golang/go/issues/28696:
+# go run x/... should not panic when directory x doesn't exist.
+
+! go run nonexistent/...
+stderr '^go run: no packages loaded from nonexistent/...$'