blob: 923a4ce5d9ae65cdf5c361cca40669e6fdcfa886 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
// 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
|