github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/doc/testdata/pkg.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package comment. 6 package pkg 7 8 import "io" 9 10 // Constants 11 12 // Comment about exported constant. 13 const ExportedConstant = 1 14 15 // Comment about internal constant. 16 const internalConstant = 2 17 18 // Comment about block of constants. 19 const ( 20 // Comment before ConstOne. 21 ConstOne = 1 22 ConstTwo = 2 // Comment on line with ConstTwo. 23 constThree = 3 // Comment on line with constThree. 24 ) 25 26 // Const block where first entry is unexported. 27 const ( 28 constFour = iota 29 ConstFive 30 ConstSix 31 ) 32 33 // Variables 34 35 // Comment about exported variable. 36 var ExportedVariable = 1 37 38 var ExportedVarOfUnExported unexportedType 39 40 // Comment about internal variable. 41 var internalVariable = 2 42 43 // Comment about block of variables. 44 var ( 45 // Comment before VarOne. 46 VarOne = 1 47 VarTwo = 2 // Comment on line with VarTwo. 48 varThree = 3 // Comment on line with varThree. 49 ) 50 51 // Var block where first entry is unexported. 52 var ( 53 varFour = 4 54 VarFive = 5 55 varSix = 6 56 ) 57 58 // Comment about exported function. 59 func ExportedFunc(a int) bool { 60 // BUG(me): function body note 61 return true != false 62 } 63 64 // Comment about internal function. 65 func internalFunc(a int) bool 66 67 // Comment about exported type. 68 type ExportedType struct { 69 // Comment before exported field. 70 ExportedField int // Comment on line with exported field. 71 unexportedField int // Comment on line with unexported field. 72 ExportedEmbeddedType // Comment on line with exported embedded field. 73 *ExportedEmbeddedType // Comment on line with exported embedded *field. 74 *qualified.ExportedEmbeddedType // Comment on line with exported embedded *selector.field. 75 unexportedType // Comment on line with unexported embedded field. 76 *unexportedType // Comment on line with unexported embedded *field. 77 io.Reader // Comment on line with embedded Reader. 78 error // Comment on line with embedded error. 79 } 80 81 // Comment about exported method. 82 func (ExportedType) ExportedMethod(a int) bool { 83 return true != true 84 } 85 86 func (ExportedType) Uncommented(a int) bool { 87 return true != true 88 } 89 90 // Comment about unexported method. 91 func (ExportedType) unexportedMethod(a int) bool { 92 return true 93 } 94 95 type ExportedStructOneField struct { 96 OnlyField int // the only field 97 } 98 99 // Constants tied to ExportedType. (The type is a struct so this isn't valid Go, 100 // but it parses and that's all we need.) 101 const ( 102 ExportedTypedConstant ExportedType = iota 103 ) 104 105 // Comment about constructor for exported type. 106 func ExportedTypeConstructor() *ExportedType { 107 return nil 108 } 109 110 const unexportedTypedConstant ExportedType = 1 // In a separate section to test -u. 111 112 // Comment about exported interface. 113 type ExportedInterface interface { 114 // Comment before exported method. 115 // 116 // // Code block showing how to use ExportedMethod 117 // func DoSomething() error { 118 // ExportedMethod() 119 // return nil 120 // } 121 // 122 ExportedMethod() // Comment on line with exported method. 123 unexportedMethod() // Comment on line with unexported method. 124 io.Reader // Comment on line with embedded Reader. 125 error // Comment on line with embedded error. 126 } 127 128 // Comment about unexported type. 129 type unexportedType int 130 131 func (unexportedType) ExportedMethod() bool { 132 return true 133 } 134 135 func (unexportedType) unexportedMethod() bool { 136 return true 137 } 138 139 // Constants tied to unexportedType. 140 const ( 141 ExportedTypedConstant_unexported unexportedType = iota 142 ) 143 144 const unexportedTypedConstant unexportedType = 1 // In a separate section to test -u. 145 146 // For case matching. 147 const CaseMatch = 1 148 const Casematch = 2 149 150 func ReturnUnexported() unexportedType { return 0 } 151 func ReturnExported() ExportedType { return ExportedType{} } 152 153 const MultiLineConst = ` 154 MultiLineString1 155 MultiLineString2 156 MultiLineString3 157 ` 158 159 func MultiLineFunc(x interface { 160 MultiLineMethod1() int 161 MultiLineMethod2() int 162 MultiLineMethod3() int 163 }) (r struct { 164 MultiLineField1 int 165 MultiLineField2 int 166 MultiLineField3 int 167 }) { 168 return r 169 } 170 171 var MultiLineVar = map[struct { 172 MultiLineField1 string 173 MultiLineField2 uint64 174 }]struct { 175 MultiLineField3 error 176 MultiLineField2 error 177 }{ 178 {"FieldVal1", 1}: {}, 179 {"FieldVal2", 2}: {}, 180 {"FieldVal3", 3}: {}, 181 } 182 183 const ( 184 _, _ uint64 = 2 * iota, 1 << iota 185 constLeft1, constRight1 186 ConstLeft2, constRight2 187 constLeft3, ConstRight3 188 ConstLeft4, ConstRight4 189 ) 190 191 const ( 192 ConstGroup1 unexportedType = iota 193 ConstGroup2 194 ConstGroup3 195 ) 196 197 const ConstGroup4 ExportedType = ExportedType{} 198 199 func newLongLine(ss ...string) 200 201 var LongLine = newLongLine( 202 "someArgument1", 203 "someArgument2", 204 "someArgument3", 205 "someArgument4", 206 "someArgument5", 207 "someArgument6", 208 "someArgument7", 209 "someArgument8", 210 ) 211 212 type T2 int 213 214 type T1 = T2 215 216 const ( 217 Duplicate = iota 218 duplicate 219 ) 220 221 // Comment about exported function with formatting. 222 // 223 // Example 224 // 225 // fmt.Println(FormattedDoc()) 226 // 227 // Text after pre-formatted block. 228 func ExportedFormattedDoc(a int) bool { 229 return true 230 } 231 232 type ExportedFormattedType struct { 233 // Comment before exported field with formatting. 234 // 235 // Example 236 // 237 // a.ExportedField = 123 238 // 239 // Text after pre-formatted block. 240 //ignore:directive 241 ExportedField int 242 } 243 244 type SimpleConstraint interface { 245 ~int | ~float64 246 } 247 248 type TildeConstraint interface { 249 ~int 250 } 251 252 type StructConstraint interface { 253 struct { F int } 254 }