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
 | |
| )
 |