66 lines
624 B
Go
66 lines
624 B
Go
package aliases
|
|
|
|
type (
|
|
T0 [10]int
|
|
T1 []byte
|
|
T2 struct {
|
|
x int
|
|
}
|
|
T3 interface {
|
|
m() T2
|
|
}
|
|
T4 func(int, T0) chan T2
|
|
)
|
|
|
|
// basic aliases
|
|
type (
|
|
Ai = int
|
|
A0 = T0
|
|
A1 = T1
|
|
A2 = T2
|
|
A3 = T3
|
|
A4 = T4
|
|
|
|
A10 = [10]int
|
|
A11 = []byte
|
|
A12 = struct {
|
|
x int
|
|
}
|
|
A13 = interface {
|
|
m() A2
|
|
}
|
|
A14 = func(int, A0) chan A2
|
|
)
|
|
|
|
// alias receiver types
|
|
func (T0) m1() {}
|
|
func (A0) m2() {}
|
|
|
|
// alias receiver types (long type declaration chains)
|
|
type (
|
|
V0 = V1
|
|
V1 = (V2)
|
|
V2 = (V3)
|
|
V3 = T0
|
|
)
|
|
|
|
func (V1) n() {}
|
|
|
|
// cycles
|
|
type C0 struct {
|
|
f1 C1
|
|
f2 C2
|
|
}
|
|
|
|
type (
|
|
C1 *C0
|
|
C2 = C1
|
|
)
|
|
|
|
type (
|
|
C5 struct {
|
|
f *C6
|
|
}
|
|
C6 = C5
|
|
)
|