• Bryan C. Mills's avatar
    cmd/go/internal/get: move wildcard-trimming to before CheckImportPath · 47fb1fbd
    Bryan C. Mills authored
    Previously, RepoRootForImportPath trimmed certain "..." wildcards from
    package patterns (even though its name suggests that the argument must
    be an actual import path). It trimmed at the first path element that
    was literally "..." (although wildcards in general may appear within a
    larger path element), and relied on a subsequent check in
    RepoRootForImportPath to catch confusing resolutions.
    
    However, that causes 'go get' with wildcard patterns in fresh paths to
    fail as of CL 154101: a wildcard pattern is not a valid import path,
    and fails the path check. (The existing Test{Vendor,Go}Get* packages
    in go_test.go and vendor_test.go catch the failure, but they are all
    skipped when the "-short" flag is set — including in all.bash — and we
    had forgotten to run them separately.)
    
    We now trim the path before any element that contains a wildcard, and
    perform the path check (and repo resolution) on only that prefix. It
    is possible that the expanded path after fetching the repo will be
    invalid, but a repository can contain directories that are not valid
    import paths in general anyway.
    
    Fixes #29241
    
    Change-Id: I70fb2f7fc6603b7d339fd6c02e8cdeacfc93fc4b
    Reviewed-on: https://go-review.googlesource.com/c/154108Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    47fb1fbd
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testdata Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...