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 // Constants 9 10 // Comment about exported constant. 11 const ExportedConstant = 1 12 13 // Comment about internal constant. 14 const internalConstant = 2 15 16 // Comment about block of constants. 17 const ( 18 // Comment before ConstOne. 19 ConstOne = 1 20 ConstTwo = 2 // Comment on line with ConstTwo. 21 constThree = 3 // Comment on line with constThree. 22 ) 23 24 // Const block where first entry is unexported. 25 const ( 26 constFour = iota 27 ConstFive 28 ConstSix 29 ) 30 31 // Variables 32 33 // Comment about exported variable. 34 var ExportedVariable = 1 35 36 // Comment about internal variable. 37 var internalVariable = 2 38 39 // Comment about block of variables. 40 var ( 41 // Comment before VarOne. 42 VarOne = 1 43 VarTwo = 2 // Comment on line with VarTwo. 44 varThree = 3 // Comment on line with varThree. 45 ) 46 47 // Var block where first entry is unexported. 48 var ( 49 varFour = 4 50 VarFive = 5 51 varSix = 6 52 ) 53 54 // Comment about exported function. 55 func ExportedFunc(a int) bool 56 57 // Comment about internal function. 58 func internalFunc(a int) bool 59 60 // Comment about exported type. 61 type ExportedType struct { 62 // Comment before exported field. 63 ExportedField int // Comment on line with exported field. 64 unexportedField int // Comment on line with unexported field. 65 ExportedEmbeddedType // Comment on line with exported embedded field. 66 *ExportedEmbeddedType // Comment on line with exported embedded *field. 67 *qualified.ExportedEmbeddedType // Comment on line with exported embedded *selector.field. 68 unexportedType // Comment on line with unexported embedded field. 69 *unexportedType // Comment on line with unexported embedded *field. 70 io.Reader // Comment on line with embedded Reader. 71 error // Comment on line with embedded error. 72 } 73 74 // Comment about exported method. 75 func (ExportedType) ExportedMethod(a int) bool { 76 return true 77 } 78 79 // Comment about unexported method. 80 func (ExportedType) unexportedMethod(a int) bool { 81 return true 82 } 83 84 type ExportedStructOneField struct { 85 OnlyField int // the only field 86 } 87 88 // Constants tied to ExportedType. (The type is a struct so this isn't valid Go, 89 // but it parses and that's all we need.) 90 const ( 91 ExportedTypedConstant ExportedType = iota 92 ) 93 94 // Comment about constructor for exported type. 95 func ExportedTypeConstructor() *ExportedType { 96 return nil 97 } 98 99 const unexportedTypedConstant ExportedType = 1 // In a separate section to test -u. 100 101 // Comment about exported interface. 102 type ExportedInterface interface { 103 // Comment before exported method. 104 ExportedMethod() // Comment on line with exported method. 105 unexportedMethod() // Comment on line with unexported method. 106 io.Reader // Comment on line with embedded Reader. 107 error // Comment on line with embedded error. 108 } 109 110 // Comment about unexported type. 111 type unexportedType int 112 113 func (unexportedType) ExportedMethod() bool { 114 return true 115 } 116 117 func (unexportedType) unexportedMethod() bool { 118 return true 119 } 120 121 // Constants tied to unexportedType. 122 const ( 123 ExportedTypedConstant_unexported unexportedType = iota 124 ) 125 126 const unexportedTypedConstant unexportedType = 1 // In a separate section to test -u. 127 128 // For case matching. 129 const CaseMatch = 1 130 const Casematch = 2 131 132 func ReturnUnexported() unexportedType { return 0 } 133 func ReturnExported() ExportedType { return ExportedType{} } 134 135 const MultiLineConst = ` 136 MultiLineString1 137 MultiLineString2 138 MultiLineString3 139 ` 140 141 func MultiLineFunc(x interface { 142 MultiLineMethod1() int 143 MultiLineMethod2() int 144 MultiLineMethod3() int 145 }) (r struct { 146 MultiLineField1 int 147 MultiLineField2 int 148 MultiLineField3 int 149 }) { 150 return r 151 } 152 153 var MultiLineVar = map[struct { 154 MultiLineField1 string 155 MultiLineField2 uint64 156 }]struct { 157 MultiLineField3 error 158 MultiLineField2 error 159 }{ 160 {"FieldVal1", 1}: {}, 161 {"FieldVal2", 2}: {}, 162 {"FieldVal3", 3}: {}, 163 } 164 165 const ( 166 _, _ uint64 = 2 * iota, 1 << iota 167 constLeft1, constRight1 168 ConstLeft2, constRight2 169 constLeft3, ConstRight3 170 ConstLeft4, ConstRight4 171 ) 172 173 const ( 174 ConstGroup1 unexportedType = iota 175 ConstGroup2 176 ConstGroup3 177 ) 178 179 const ConstGroup4 ExportedType = ExportedType{} 180 181 func newLongLine(ss ...string) 182 183 var LongLine = newLongLine( 184 "someArgument1", 185 "someArgument2", 186 "someArgument3", 187 "someArgument4", 188 "someArgument5", 189 "someArgument6", 190 "someArgument7", 191 "someArgument8", 192 ) 193 194 type T2 int 195 196 type T1 = T2 197 198 const ( 199 Duplicate = iota 200 duplicate 201 ) 202