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 PACKAGE e
IMPORTPATH IMPORTPATH
...@@ -8,7 +8,7 @@ FILENAMES ...@@ -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 ...@@ -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
}
// // The package e is a go/doc test for embedded methods.
PACKAGE e PACKAGE e
IMPORTPATH IMPORTPATH
...@@ -8,7 +8,7 @@ FILENAMES ...@@ -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 ...@@ -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{}
......
...@@ -2,9 +2,7 @@ ...@@ -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{} ...@@ -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 { ...@@ -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
}
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