// 
PACKAGE c

IMPORTPATH
	testdata/c

IMPORTS
	a

FILENAMES
	testdata/c.go

TYPES
	// A (should see this) 
	type A struct{}

	// B (should see this) 
	type B struct{}

	// C (should see this) 
	type C struct{}

	// D (should see this) 
	type D struct{}

	// E1 (should see this) 
	type E1 struct{}

	// E (should see this for E2 and E3) 
	type E2 struct{}

	// E (should see this for E2 and E3) 
	type E3 struct{}

	// E4 (should see this) 
	type E4 struct{}

	// 
	type T1 struct{}

	// 
	func (t1 *T1) M()

	// T2 must not show methods of local T1 
	type T2 struct {
		a.T1	// not the same as locally declared T1
	}

