aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/doc/testdata/pkg.go
diff options
context:
space:
mode:
authorMichael Matloob <matloob@golang.org>2025-05-30 18:20:05 -0400
committerMichael Matloob <matloob@google.com>2025-06-03 11:28:46 -0700
commit94764d093822721337243de77aeba72df1f9b230 (patch)
tree8798a184a7ce2e2aa37702900ef781686e302556 /src/cmd/doc/testdata/pkg.go
parent74b70eead70872ccb0b7bfe0435ef3e4a1eb288e (diff)
downloadgo-94764d093822721337243de77aeba72df1f9b230.tar.xz
cmd/doc: build cmd/doc directly into the go command
There are a couple of places where our tests expect that 'go doc' doesn't need to do a build. Invoke the cmd/doc code directly by the go command instead of starting the doc tool in a separate process so we can preserve that property. This change moves most of the doc code into the package cmd/internal/doc, and exposes a Main function from that function that's called both by the cmd/doc package, and by go doc. This change makes couple of additional changes to intergrate doc into the go command: The counter.Open call and the increment of invocations counter are only needed by cmd/doc. The go command will open the counters file and increment a counter for the doc subcommand. We add a cmd_go_bootstrap tagged variant of the file that defines go doc so that we don't end up linking net into the bootstrap version of the go command. We don't need doc in that version of the command. We create a new flagSet rather than using flag.CommandLine because when running as part of the go command, the flags to "go doc" won't be the top level flags. We change TestGoListTest in go_test.go to use gofmt instead of doc as an example of a main package in cmd with an in-package test. For #71867 Change-Id: I3e3df83e5fa266559606fdc086b461165e09f037 Reviewed-on: https://go-review.googlesource.com/c/go/+/677775 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Michael Matloob <matloob@google.com>
Diffstat (limited to 'src/cmd/doc/testdata/pkg.go')
-rw-r--r--src/cmd/doc/testdata/pkg.go254
1 files changed, 0 insertions, 254 deletions
diff --git a/src/cmd/doc/testdata/pkg.go b/src/cmd/doc/testdata/pkg.go
deleted file mode 100644
index 4d269ff0a2..0000000000
--- a/src/cmd/doc/testdata/pkg.go
+++ /dev/null
@@ -1,254 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package comment.
-package pkg
-
-import "io"
-
-// Constants
-
-// Comment about exported constant.
-const ExportedConstant = 1
-
-// Comment about internal constant.
-const internalConstant = 2
-
-// Comment about block of constants.
-const (
- // Comment before ConstOne.
- ConstOne = 1
- ConstTwo = 2 // Comment on line with ConstTwo.
- constThree = 3 // Comment on line with constThree.
-)
-
-// Const block where first entry is unexported.
-const (
- constFour = iota
- ConstFive
- ConstSix
-)
-
-// Variables
-
-// Comment about exported variable.
-var ExportedVariable = 1
-
-var ExportedVarOfUnExported unexportedType
-
-// Comment about internal variable.
-var internalVariable = 2
-
-// Comment about block of variables.
-var (
- // Comment before VarOne.
- VarOne = 1
- VarTwo = 2 // Comment on line with VarTwo.
- varThree = 3 // Comment on line with varThree.
-)
-
-// Var block where first entry is unexported.
-var (
- varFour = 4
- VarFive = 5
- varSix = 6
-)
-
-// Comment about exported function.
-func ExportedFunc(a int) bool {
- // BUG(me): function body note
- return true != false
-}
-
-// Comment about internal function.
-func internalFunc(a int) bool
-
-// Comment about exported type.
-type ExportedType struct {
- // Comment before exported field.
- ExportedField int // Comment on line with exported field.
- unexportedField int // Comment on line with unexported field.
- ExportedEmbeddedType // Comment on line with exported embedded field.
- *ExportedEmbeddedType // Comment on line with exported embedded *field.
- *qualified.ExportedEmbeddedType // Comment on line with exported embedded *selector.field.
- unexportedType // Comment on line with unexported embedded field.
- *unexportedType // Comment on line with unexported embedded *field.
- io.Reader // Comment on line with embedded Reader.
- error // Comment on line with embedded error.
-}
-
-// Comment about exported method.
-func (ExportedType) ExportedMethod(a int) bool {
- return true != true
-}
-
-func (ExportedType) Uncommented(a int) bool {
- return true != true
-}
-
-// Comment about unexported method.
-func (ExportedType) unexportedMethod(a int) bool {
- return true
-}
-
-type ExportedStructOneField struct {
- OnlyField int // the only field
-}
-
-// Constants tied to ExportedType. (The type is a struct so this isn't valid Go,
-// but it parses and that's all we need.)
-const (
- ExportedTypedConstant ExportedType = iota
-)
-
-// Comment about constructor for exported type.
-func ExportedTypeConstructor() *ExportedType {
- return nil
-}
-
-const unexportedTypedConstant ExportedType = 1 // In a separate section to test -u.
-
-// Comment about exported interface.
-type ExportedInterface interface {
- // Comment before exported method.
- //
- // // Code block showing how to use ExportedMethod
- // func DoSomething() error {
- // ExportedMethod()
- // return nil
- // }
- //
- ExportedMethod() // Comment on line with exported method.
- unexportedMethod() // Comment on line with unexported method.
- io.Reader // Comment on line with embedded Reader.
- error // Comment on line with embedded error.
-}
-
-// Comment about unexported type.
-type unexportedType int
-
-func (unexportedType) ExportedMethod() bool {
- return true
-}
-
-func (unexportedType) unexportedMethod() bool {
- return true
-}
-
-// Constants tied to unexportedType.
-const (
- ExportedTypedConstant_unexported unexportedType = iota
-)
-
-const unexportedTypedConstant unexportedType = 1 // In a separate section to test -u.
-
-// For case matching.
-const CaseMatch = 1
-const Casematch = 2
-
-func ReturnUnexported() unexportedType { return 0 }
-func ReturnExported() ExportedType { return ExportedType{} }
-
-const MultiLineConst = `
- MultiLineString1
- MultiLineString2
- MultiLineString3
-`
-
-func MultiLineFunc(x interface {
- MultiLineMethod1() int
- MultiLineMethod2() int
- MultiLineMethod3() int
-}) (r struct {
- MultiLineField1 int
- MultiLineField2 int
- MultiLineField3 int
-}) {
- return r
-}
-
-var MultiLineVar = map[struct {
- MultiLineField1 string
- MultiLineField2 uint64
-}]struct {
- MultiLineField3 error
- MultiLineField2 error
-}{
- {"FieldVal1", 1}: {},
- {"FieldVal2", 2}: {},
- {"FieldVal3", 3}: {},
-}
-
-const (
- _, _ uint64 = 2 * iota, 1 << iota
- constLeft1, constRight1
- ConstLeft2, constRight2
- constLeft3, ConstRight3
- ConstLeft4, ConstRight4
-)
-
-const (
- ConstGroup1 unexportedType = iota
- ConstGroup2
- ConstGroup3
-)
-
-const ConstGroup4 ExportedType = ExportedType{}
-
-func newLongLine(ss ...string)
-
-var LongLine = newLongLine(
- "someArgument1",
- "someArgument2",
- "someArgument3",
- "someArgument4",
- "someArgument5",
- "someArgument6",
- "someArgument7",
- "someArgument8",
-)
-
-type T2 int
-
-type T1 = T2
-
-const (
- Duplicate = iota
- duplicate
-)
-
-// Comment about exported function with formatting.
-//
-// Example
-//
-// fmt.Println(FormattedDoc())
-//
-// Text after pre-formatted block.
-func ExportedFormattedDoc(a int) bool {
- return true
-}
-
-type ExportedFormattedType struct {
- // Comment before exported field with formatting.
- //
- // Example
- //
- // a.ExportedField = 123
- //
- // Text after pre-formatted block.
- //ignore:directive
- ExportedField int
-}
-
-type SimpleConstraint interface {
- ~int | ~float64
-}
-
-type TildeConstraint interface {
- ~int
-}
-
-type StructConstraint interface {
- struct { F int }
-}