1// The package e is a go/doc test for embedded methods.
2PACKAGE e
3
4IMPORTPATH
5	testdata/e
6
7FILENAMES
8	testdata/e.go
9
10TYPES
11	// T1 has no embedded (level 1) M method due to conflict.
12	type T1 struct {
13		// contains filtered or unexported fields
14	}
15
16	// T2 has only M as top-level method.
17	type T2 struct {
18		// contains filtered or unexported fields
19	}
20
21	// T2.M should appear as method of T2.
22	func (T2) M()
23
24	// T3 has only M as top-level method.
25	type T3 struct {
26		// contains filtered or unexported fields
27	}
28
29	// T3.M should appear as method of T3.
30	func (T3) M()
31
32	//
33	type T4 struct{}
34
35	// T4.M should appear as method of T5 only if AllMethods is set.
36	func (*T4) M()
37
38	//
39	type T5 struct {
40		T4
41	}
42
43	// T4.M should appear as method of T5 only if AllMethods is set.
44	func (*T5) M()
45
46	//
47	type U1 struct {
48		*U1
49	}
50
51	// U1.M should appear as method of U1.
52	func (*U1) M()
53
54	//
55	type U2 struct {
56		*U3
57	}
58
59	// U2.M should appear as method of U2 and as method of U3 only if ...
60	func (*U2) M()
61
62	// U3.N should appear as method of U3 and as method of U2 only if ...
63	func (U2) N()
64
65	//
66	type U3 struct {
67		*U2
68	}
69
70	// U2.M should appear as method of U2 and as method of U3 only if ...
71	func (U3) M()
72
73	// U3.N should appear as method of U3 and as method of U2 only if ...
74	func (*U3) N()
75
76	//
77	type U4 struct {
78		// contains filtered or unexported fields
79	}
80
81	// U4.M should appear as method of U4.
82	func (*U4) M()
83
84	//
85	type V1 struct {
86		*V2
87		*V5
88	}
89
90	// V6.M should appear as method of V1 and V5 if AllMethods is set.
91	func (V1) M()
92
93	//
94	type V2 struct {
95		*V3
96	}
97
98	// V4.M should appear as method of V2 and V3 if AllMethods is set.
99	func (V2) M()
100
101	//
102	type V3 struct {
103		*V4
104	}
105
106	// V4.M should appear as method of V2 and V3 if AllMethods is set.
107	func (V3) M()
108
109	//
110	type V4 struct {
111		*V5
112	}
113
114	// V4.M should appear as method of V2 and V3 if AllMethods is set.
115	func (*V4) M()
116
117	//
118	type V5 struct {
119		*V6
120	}
121
122	// V6.M should appear as method of V1 and V5 if AllMethods is set.
123	func (V5) M()
124
125	//
126	type V6 struct{}
127
128	// V6.M should appear as method of V1 and V5 if AllMethods is set.
129	func (*V6) M()
130
131