if listRetracted {
allowed = CheckExclusions
}
- m.Versions, _ = versions(ctx, m.Path, allowed)
+ var err error
+ m.Versions, err = versions(ctx, m.Path, allowed)
+ if err != nil && m.Error == nil {
+ m.Error = &modinfo.ModuleError{Err: err.Error()}
+ }
}
// addRetraction fills in m.Retracted if the module was retracted by its author.
if listVersions {
// Don't make the user provide an explicit '@latest' when they're
// explicitly asking what the available versions are.
- // Instead, resolve the module, even if it isn't an existing dependency.
- info, err := Query(ctx, arg, "latest", "", nil)
- if err == nil {
- mod := moduleInfo(ctx, module.Version{Path: arg, Version: info.Version}, false, listRetracted)
- mods = append(mods, mod)
- } else {
- mods = append(mods, &modinfo.ModulePublic{
- Path: arg,
- Error: modinfoError(arg, "", err),
- })
- }
+ // Instead, return a modinfo without a version,
+ // to which we can attach the requested version list.
+ mods = append(mods, &modinfo.ModulePublic{Path: arg})
continue
}
if cfg.BuildMod == "vendor" {
stdout '^example.com/retract/self/pseudo: "module example.com/retract/self/pseudo: no matching versions for query \\"latest\\"" "latest"$'
- # BUG(#44296): Adding --versions should not cause a retracted version to be reported.
go list -m -e -f $FMT --versions example.com/retract/self/pseudo
-stdout '^example.com/retract/self/pseudo "v1.9.0"$'
+stdout '^example.com/retract/self/pseudo ""$'
go list -m -e -f $FMT --versions example.com/retract/self/pseudo@latest
stdout '^example.com/retract/self/pseudo: "module example.com/retract/self/pseudo: no matching versions for query \\"latest\\"" "latest"$'