From bf88adadac9bbb1b190ba7af1010373823dabb06 Mon Sep 17 00:00:00 2001 From: Roi Martin Date: Thu, 25 Nov 2021 13:47:39 +0100 Subject: [PATCH] cmd/doc: fix "builtin" package parsing As stated in the code, "The builtin package needs special treatment: its symbols are lower case but we want to see them, always". Thus, cmd/doc forces the -u flag if the package being queried is called "builtin". However, this happens after having already parsed the package. This CL forces the -u flag just after parsing the command arguments and before parsing any package. Fixes #49796. Change-Id: If690a900c7cfd1700feecb9529bd4344c3c249d1 Reviewed-on: https://go-review.googlesource.com/c/go/+/367134 Reviewed-by: Rob Pike Run-TryBot: Rob Pike TryBot-Result: Go Bot Trust: Emmanuel Odeke --- src/cmd/doc/main.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cmd/doc/main.go b/src/cmd/doc/main.go index 0499c40369..dee5d7bbcd 100644 --- a/src/cmd/doc/main.go +++ b/src/cmd/doc/main.go @@ -110,6 +110,13 @@ func do(writer io.Writer, flagSet *flag.FlagSet, args []string) (err error) { if buildPackage == nil { return fmt.Errorf("no such package: %s", userPath) } + + // The builtin package needs special treatment: its symbols are lower + // case but we want to see them, always. + if buildPackage.ImportPath == "builtin" { + unexported = true + } + symbol, method = parseSymbol(sym) pkg := parsePackage(writer, buildPackage, userPath) paths = append(paths, pkg.prettyPath()) @@ -128,12 +135,6 @@ func do(writer io.Writer, flagSet *flag.FlagSet, args []string) (err error) { panic(e) }() - // The builtin package needs special treatment: its symbols are lower - // case but we want to see them, always. - if pkg.build.ImportPath == "builtin" { - unexported = true - } - // We have a package. if showAll && symbol == "" { pkg.allDoc() -- 2.50.0