github.com/sanprasirt/go@v0.0.0-20170607001320-a027466e4b6d/src/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 // 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 unexportedType // Comment on line with unexported embedded field. 68 *unexportedType // Comment on line with unexported embedded *field. 69 io.Reader // Comment on line with embedded Reader. 70 error // Comment on line with embedded error. 71 } 72 73 // Comment about exported method. 74 func (ExportedType) ExportedMethod(a int) bool { 75 return true 76 } 77 78 // Comment about unexported method. 79 func (ExportedType) unexportedMethod(a int) bool { 80 return true 81 } 82 83 // Constants tied to ExportedType. (The type is a struct so this isn't valid Go, 84 // but it parses and that's all we need.) 85 const ( 86 ExportedTypedConstant ExportedType = iota 87 ) 88 89 // Comment about constructor for exported type. 90 func ExportedTypeConstructor() *ExportedType { 91 return nil 92 } 93 94 const unexportedTypedConstant ExportedType = 1 // In a separate section to test -u. 95 96 // Comment about exported interface. 97 type ExportedInterface interface { 98 // Comment before exported method. 99 ExportedMethod() // Comment on line with exported method. 100 unexportedMethod() // Comment on line with unexported method. 101 io.Reader // Comment on line with embedded Reader. 102 error // Comment on line with embedded error. 103 } 104 105 // Comment about unexported type. 106 type unexportedType int 107 108 func (unexportedType) ExportedMethod() bool { 109 return true 110 } 111 112 func (unexportedType) unexportedMethod() bool { 113 return true 114 } 115 116 // Constants tied to unexportedType. 117 const ( 118 ExportedTypedConstant_unexported unexportedType = iota 119 ) 120 121 const unexportedTypedConstant unexportedType = 1 // In a separate section to test -u. 122 123 // For case matching. 124 const CaseMatch = 1 125 const Casematch = 2 126 127 func ReturnUnexported() unexportedType { return 0 } 128 func ReturnExported() ExportedType { return ExportedType{} } 129 130 const MultiLineConst = ` 131 MultiLineString1 132 MultiLineString2 133 MultiLineString3 134 ` 135 136 func MultiLineFunc(x interface { 137 MultiLineMethod1() int 138 MultiLineMethod2() int 139 MultiLineMethod3() int 140 }) (r struct { 141 MultiLineField1 int 142 MultiLineField2 int 143 MultiLineField3 int 144 }) { 145 return r 146 } 147 148 var MultiLineVar = map[struct { 149 MultiLineField1 string 150 MultiLineField2 uint64 151 }]struct { 152 MultiLineField3 error 153 MultiLineField2 error 154 }{ 155 {"FieldVal1", 1}: {}, 156 {"FieldVal2", 2}: {}, 157 {"FieldVal3", 3}: {}, 158 } 159 160 const ( 161 _, _ uint64 = 2 * iota, 1 << iota 162 constLeft1, constRight1 163 ConstLeft2, constRight2 164 constLeft3, ConstRight3 165 ConstLeft4, ConstRight4 166 ) 167 168 const ( 169 ConstGroup1 unexportedType = iota 170 ConstGroup2 171 ConstGroup3 172 ) 173 174 const ConstGroup4 ExportedType = ExportedType{} 175 176 func newLongLine(ss ...string) 177 178 var LongLine = newLongLine( 179 "someArgument1", 180 "someArgument2", 181 "someArgument3", 182 "someArgument4", 183 "someArgument5", 184 "someArgument6", 185 "someArgument7", 186 "someArgument8", 187 ) 188 189 type T2 int 190 191 type T1 = T2