blob: 923a4ce5d9ae65cdf5c361cca40669e6fdcfa886 [file] [log] [blame]
// Package generics contains the new syntax supporting generic ...
PACKAGE generics
IMPORTPATH
testdata/generics
FILENAMES
testdata/generics.go
FUNCTIONS
// AnotherFunc has an implicit constraint interface. Neither type ...
func AnotherFunc[T ~struct{ f int }](_ struct{ f int })
// Func has an instantiated constraint.
func Func[T Constraint[string, Type[int]]]()
// Single is not a factory function.
func Single[T any]() *T
// Slice is not a factory function.
func Slice[T any]() []T
TYPES
// AFuncType demonstrates filtering of parameters and type ...
type AFuncType[T ~struct{ f int }] func(_ struct{ f int })
// Constraint is a constraint interface with two type parameters.
type Constraint[P, Q interface{ string | ~int | Type[int] }] interface {
~int | ~byte | Type[string]
M() P
}
// NewEmbeddings demonstrates how we filter the new embedded ...
type NewEmbeddings interface {
string // should not be filtered
int16
struct{ f int }
~struct{ f int }
*struct{ f int }
struct{ f int } | ~struct{ f int }
}
// Parameterized types should be shown.
type Type[P any] struct {
Field P
}
// Variables with an instantiated type should be shown.
var X Type[int]
// Constructors for parameterized types should be shown.
func Constructor[lowerCase any]() Type[lowerCase]
// MethodA uses a different name for its receiver type parameter.
func (t Type[A]) MethodA(p A)
// MethodB has a blank receiver type parameter.
func (t Type[_]) MethodB()
// MethodC has a lower-case receiver type parameter.
func (t Type[c]) MethodC()
// int16 shadows the predeclared type int16.
type int16 int