Skip to content

cmd/doc: show documentation for explicitly-requested identifiers regardless of the -u flag #33133

Description

@bcmills

What version of Go are you using (go version)?

~/go/src$ go version
go version devel +87bf0b5c51 Tue Jul 16 13:17:46 2019 -0400 linux/amd64

What did you do?

~/go/src$ go doc go/build.getToolDir

What did you expect to see?

~/go/src$ go doc go/build.getToolDir
package build // import "go/build"

func getToolDir() string
    getToolDir returns the default value of ToolDir.

What did you see instead?

~/go/src$ go doc go/build.getToolDir
package build // import "go/build"

doc: no symbol getToolDir in package go/build
exit status 1

~/go/src$ go doc -u go/build.getToolDir
package build // import "go/build"

func getToolDir() string
    getToolDir returns the default value of ToolDir.

The doc command by default hides all unexported identifiers, even those explicitly requested by the user. To coax it to display the requested result, you have to pass the -u flag, which has the secondary (and often unwanted) effect of displaying unexported fields and methods on the requested identifier.

Moreover, that behavior is inconsistent with the behavior for internal packages, for which go doc will happily display documentation even without the -u flag.

Instead, the -u flag should control only the behavior for nested declarations — variables, constants, types, functions, fields, and/or methods associated with the requested identifier — not the requested identifier itself.

CC @robpike @mvdan @ianthehat

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsFixThe path to resolution is known, but the work has not been done.help wanted

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions