// The package e is a go/doc test for embedded methods. 
PACKAGE e

IMPORTPATH
	testdata/e

FILENAMES
	testdata/e.go

TYPES
	// T1 has no embedded (level 1) M method due to conflict. 
	type T1 struct {
		t1
		t2
	}

	// T2 has only M as top-level method. 
	type T2 struct {
		t1
	}

	// T2.M should appear as method of T2. 
	func (T2) M()

	// T3 has only M as top-level method. 
	type T3 struct {
		t1e
		t2e
	}

	// T3.M should appear as method of T3. 
	func (T3) M()

	// 
	type T4 struct{}

	// T4.M should appear as method of T5 only if AllMethods is set. 
	func (*T4) M()

	// 
	type T5 struct {
		T4
	}

	// 
	type U1 struct {
		*U1
	}

	// U1.M should appear as method of U1. 
	func (*U1) M()

	// 
	type U2 struct {
		*U3
	}

	// U2.M should appear as method of U2 and as method of U3 only if ...
	func (*U2) M()

	// 
	type U3 struct {
		*U2
	}

	// U3.N should appear as method of U3 and as method of U2 only if ...
	func (*U3) N()

	// 
	type U4 struct {
		*u5
	}

	// U4.M should appear as method of U4. 
	func (*U4) M()

	// 
	type V1 struct {
		*V2
		*V5
	}

	// 
	type V2 struct {
		*V3
	}

	// 
	type V3 struct {
		*V4
	}

	// 
	type V4 struct {
		*V5
	}

	// V4.M should appear as method of V2 and V3 if AllMethods is set. 
	func (*V4) M()

	// 
	type V5 struct {
		*V6
	}

	// 
	type V6 struct{}

	// V6.M should appear as method of V1 and V5 if AllMethods is set. 
	func (*V6) M()

	// 
	type t1 struct{}

	// t1.M should not appear as method in a Tx type. 
	func (t1) M()

	// 
	type t1e struct {
		t1
	}

	// t1.M should not appear as method in a Tx type. 
	func (t1e) M()

	// 
	type t2 struct{}

	// t2.M should not appear as method in a Tx type. 
	func (t2) M()

	// 
	type t2e struct {
		t2
	}

	// t2.M should not appear as method in a Tx type. 
	func (t2e) M()

	// 
	type u5 struct {
		*U4
	}

