1
0
mirror of https://github.com/golang/go synced 2024-11-22 04:34:39 -07:00

go/doc: added test case

Don't show conflicting method embedded via
a visible and invisible anonymous field.

R=rsc
CC=golang-dev
https://golang.org/cl/5564064
This commit is contained in:
Robert Griesemer 2012-01-27 14:45:31 -08:00
parent 45a8fae996
commit a0d0ed2002
3 changed files with 28 additions and 8 deletions

View File

@ -1,4 +1,4 @@
// // The package e is a go/doc test for embedded methods.
PACKAGE e PACKAGE e
IMPORTPATH IMPORTPATH
@ -8,7 +8,7 @@ FILENAMES
testdata/e.go testdata/e.go
TYPES TYPES
// T1 has no (top-level) M method due to conflict. // T1 has no embedded (level 1) M method due to conflict.
type T1 struct { type T1 struct {
// contains filtered or unexported fields // contains filtered or unexported fields
} }
@ -29,3 +29,9 @@ TYPES
// T3.M should appear as method of T3. // T3.M should appear as method of T3.
func (T3) M() func (T3) M()
// T1 has no embedded (level 1) M method due to conflict.
type T4 struct {
T2
// contains filtered or unexported fields
}

View File

@ -1,4 +1,4 @@
// // The package e is a go/doc test for embedded methods.
PACKAGE e PACKAGE e
IMPORTPATH IMPORTPATH
@ -8,7 +8,7 @@ FILENAMES
testdata/e.go testdata/e.go
TYPES TYPES
// T1 has no (top-level) M method due to conflict. // T1 has no embedded (level 1) M method due to conflict.
type T1 struct { type T1 struct {
t1 t1
t2 t2
@ -31,6 +31,12 @@ TYPES
// T3.M should appear as method of T3. // T3.M should appear as method of T3.
func (T3) M() func (T3) M()
// T1 has no embedded (level 1) M method due to conflict.
type T4 struct {
t2
T2
}
// //
type t1 struct{} type t1 struct{}

View File

@ -2,9 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// Embedding tests. // The package e is a go/doc test for embedded methods.
// TODO(gri): This should be comprehensive.
package e package e
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -20,7 +18,7 @@ type t2 struct{}
// t2.M should not appear as method in a Tx type. // t2.M should not appear as method in a Tx type.
func (t2) M() {} func (t2) M() {}
// T1 has no (top-level) M method due to conflict. // T1 has no embedded (level 1) M method due to conflict.
type T1 struct { type T1 struct {
t1 t1
t2 t2
@ -56,3 +54,13 @@ type T3 struct {
// T3.M should appear as method of T3. // T3.M should appear as method of T3.
func (T3) M() {} func (T3) M() {}
// ----------------------------------------------------------------------------
// Don't show conflicting methods M embedded via an exported and non-exported
// type.
// T1 has no embedded (level 1) M method due to conflict.
type T4 struct {
t2
T2
}