diff options
| author | Michael Matloob <matloob@golang.org> | 2025-05-30 18:20:05 -0400 |
|---|---|---|
| committer | Michael Matloob <matloob@google.com> | 2025-06-03 11:28:46 -0700 |
| commit | 94764d093822721337243de77aeba72df1f9b230 (patch) | |
| tree | 8798a184a7ce2e2aa37702900ef781686e302556 /src/cmd/doc/testdata/pkg.go | |
| parent | 74b70eead70872ccb0b7bfe0435ef3e4a1eb288e (diff) | |
| download | go-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.go | 254 |
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 } -} |
