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	//
44	type U1 struct {
45		*U1
46	}
47
48	// U1.M should appear as method of U1.
49	func (*U1) M()
50
51	//
52	type U2 struct {
53		*U3
54	}
55
56	// U2.M should appear as method of U2 and as method of U3 only if ...
57	func (*U2) M()
58
59	//
60	type U3 struct {
61		*U2
62	}
63
64	// U3.N should appear as method of U3 and as method of U2 only if ...
65	func (*U3) N()
66
67	//
68	type U4 struct {
69		// contains filtered or unexported fields
70	}
71
72	// U4.M should appear as method of U4.
73	func (*U4) M()
74
75	//
76	type V1 struct {
77		*V2
78		*V5
79	}
80
81	//
82	type V2 struct {
83		*V3
84	}
85
86	//
87	type V3 struct {
88		*V4
89	}
90
91	//
92	type V4 struct {
93		*V5
94	}
95
96	// V4.M should appear as method of V2 and V3 if AllMethods is set.
97	func (*V4) M()
98
99	//
100	type V5 struct {
101		*V6
102	}
103
104	//
105	type V6 struct{}
106
107	// V6.M should appear as method of V1 and V5 if AllMethods is set.
108	func (*V6) M()
109
110