github.com/v2fly/tools@v0.100.0/go/internal/gccgoimporter/testdata/aliases.go (about)

     1  package aliases
     2  
     3  type (
     4  	T0 [10]int
     5  	T1 []byte
     6  	T2 struct {
     7  		x int
     8  	}
     9  	T3 interface {
    10  		m() T2
    11  	}
    12  	T4 func(int, T0) chan T2
    13  )
    14  
    15  // basic aliases
    16  type (
    17  	Ai = int
    18  	A0 = T0
    19  	A1 = T1
    20  	A2 = T2
    21  	A3 = T3
    22  	A4 = T4
    23  
    24  	A10 = [10]int
    25  	A11 = []byte
    26  	A12 = struct {
    27  		x int
    28  	}
    29  	A13 = interface {
    30  		m() A2
    31  	}
    32  	A14 = func(int, A0) chan A2
    33  )
    34  
    35  // alias receiver types
    36  func (T0) m1() {}
    37  func (A0) m2() {}
    38  
    39  // alias receiver types (long type declaration chains)
    40  type (
    41  	V0 = V1
    42  	V1 = (V2)
    43  	V2 = (V3)
    44  	V3 = T0
    45  )
    46  
    47  func (V1) n() {}
    48  
    49  // cycles
    50  type C0 struct {
    51  	f1 C1
    52  	f2 C2
    53  }
    54  
    55  type (
    56  	C1 *C0
    57  	C2 = C1
    58  )
    59  
    60  type (
    61  	C5 struct {
    62  		f *C6
    63  	}
    64  	C6 = C5
    65  )