Commit a0d0ed20 authored by Robert Griesemer's avatar Robert Griesemer

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
parent 45a8fae9
//
// 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
}
//
// 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{}
......
......@@ -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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment