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