1
0
mirror of https://github.com/golang/go synced 2024-11-21 23:34:42 -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
IMPORTPATH
@ -8,7 +8,7 @@ FILENAMES
testdata/e.go
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 {
// contains filtered or unexported fields
}
@ -29,3 +29,9 @@ TYPES
// T3.M should appear as method of T3.
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
IMPORTPATH
@ -8,7 +8,7 @@ FILENAMES
testdata/e.go
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 {
t1
t2
@ -31,6 +31,12 @@ TYPES
// T3.M should appear as method of T3.
func (T3) M()
// T1 has no embedded (level 1) M method due to conflict.
type T4 struct {
t2
T2
}
//
type t1 struct{}

View File

@ -2,9 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Embedding tests.
// TODO(gri): This should be comprehensive.
// The package e is a go/doc test for embedded methods.
package e
// ----------------------------------------------------------------------------
@ -20,7 +18,7 @@ type t2 struct{}
// t2.M should not appear as method in a Tx type.
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 {
t1
t2
@ -56,3 +54,13 @@ type T3 struct {
// T3.M should appear as method of T3.
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
}