]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: check subcommand properties
authorIan Alexander <jitsu@google.com>
Fri, 30 May 2025 21:59:34 +0000 (17:59 -0400)
committerIan Alexander <jitsu@google.com>
Mon, 21 Jul 2025 15:29:11 +0000 (08:29 -0700)
This change corrects the properties checked by Lookup.  We were
inspecting the properties of the Command receiver; now we are
inspecting the properties of the subcommand.

Fixes #73864.

Change-Id: Ieb462e489fc4f8f0568aa3a2d404b322d627166c
Reviewed-on: https://go-review.googlesource.com/c/go/+/678655
Reviewed-by: Michael Matloob <matloob@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Matloob <matloob@google.com>
src/cmd/go/internal/base/base.go

index 83cbad401e2c83d5d28bf48eb2a395cc2b54cca2..d5d5f8d36e11330c5982e63799c05296b4de69df 100644 (file)
@@ -62,11 +62,11 @@ var Go = &Command{
 // Lookup returns the subcommand with the given name, if any.
 // Otherwise it returns nil.
 //
-// Lookup ignores subcommands that have len(c.Commands) == 0 and c.Run == nil.
+// Lookup ignores any subcommand `sub` that has len(sub.Commands) == 0 and sub.Run == nil.
 // Such subcommands are only for use as arguments to "help".
 func (c *Command) Lookup(name string) *Command {
        for _, sub := range c.Commands {
-               if sub.Name() == name && (len(c.Commands) > 0 || c.Runnable()) {
+               if sub.Name() == name && (len(sub.Commands) > 0 || sub.Runnable()) {
                        return sub
                }
        }