...

Text file src/go/doc/testdata/generics.1.golden

Documentation: go/doc/testdata

     1// Package generics contains the new syntax supporting generic ...
     2PACKAGE generics
     3
     4IMPORTPATH
     5	testdata/generics
     6
     7FILENAMES
     8	testdata/generics.go
     9
    10FUNCTIONS
    11	// AnotherFunc has an implicit constraint interface.  Neither type ...
    12	func AnotherFunc[T ~struct{ f int }](_ struct{ f int })
    13
    14	// Func has an instantiated constraint. 
    15	func Func[T Constraint[string, Type[int]]]()
    16
    17	// Single is not a factory function. 
    18	func Single[T any]() *T
    19
    20	// Slice is not a factory function. 
    21	func Slice[T any]() []T
    22
    23
    24TYPES
    25	// AFuncType demonstrates filtering of parameters and type ...
    26	type AFuncType[T ~struct{ f int }] func(_ struct{ f int })
    27
    28	// Constraint is a constraint interface with two type parameters. 
    29	type Constraint[P, Q interface{ string | ~int | Type[int] }] interface {
    30		~int | ~byte | Type[string]
    31		M() P
    32	}
    33
    34	// NewEmbeddings demonstrates how we filter the new embedded ...
    35	type NewEmbeddings interface {
    36		string	// should not be filtered
    37		int16
    38		struct{ f int }
    39		~struct{ f int }
    40		*struct{ f int }
    41		struct{ f int } | ~struct{ f int }
    42	}
    43
    44	// Parameterized types should be shown. 
    45	type Type[P any] struct {
    46		Field P
    47	}
    48
    49	// Variables with an instantiated type should be shown. 
    50	var X Type[int]
    51
    52	// Constructors for parameterized types should be shown. 
    53	func Constructor[lowerCase any]() Type[lowerCase]
    54
    55	// MethodA uses a different name for its receiver type parameter. 
    56	func (t Type[A]) MethodA(p A)
    57
    58	// MethodB has a blank receiver type parameter. 
    59	func (t Type[_]) MethodB()
    60
    61	// MethodC has a lower-case receiver type parameter. 
    62	func (t Type[c]) MethodC()
    63
    64	// int16 shadows the predeclared type int16. 
    65	type int16 int
    66

View as plain text