module: accept leading dash in a file path
For golang/go#45447
Change-Id: I38b13bc912851aa9b6cdeb851330a5ed97b743ac
Reviewed-on: https://go-review.googlesource.com/c/mod/+/316629
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
diff --git a/module/module.go b/module/module.go
index cf69ff6..ba97ac3 100644
--- a/module/module.go
+++ b/module/module.go
@@ -393,7 +393,7 @@
if path == "" {
return fmt.Errorf("empty string")
}
- if path[0] == '-' {
+ if path[0] == '-' && kind != filePath {
return fmt.Errorf("leading dash")
}
if strings.Contains(path, "//") {
diff --git a/module/module_test.go b/module/module_test.go
index 5e8193d..2cfb7aa 100644
--- a/module/module_test.go
+++ b/module/module_test.go
@@ -79,7 +79,7 @@
{"/x.y/z", false, false, false},
{"x./z", false, false, false},
{".x/z", false, true, true},
- {"-x/z", false, false, false},
+ {"-x/z", false, false, true},
{"x..y/z", true, true, true},
{"x.y/z/../../w", false, false, false},
{"x.y//z", false, false, false},