| This test checks the formatting of the list of accessible methods. | |
| Observe that: | |
| - interface methods that appear in the syntax are not repeated | |
| in the method set of the type; | |
| - promoted methods of structs are shown; | |
| - receiver variables are correctly named; | |
| - receiver variables have a pointer type if appropriate; | |
| - only accessible methods are shown. | |
| -- go.mod -- | |
| module example.com | |
| -- lib/lib.go -- | |
| package lib | |
| type I interface { | |
| A() | |
| b() | |
| J | |
| } | |
| type J interface { C() } | |
| type S struct { I } | |
| func (s S) A() {} | |
| func (s S) b() {} | |
| func (s *S) PA() {} | |
| func (s *S) pb() {} | |
| var _ = (*S).pb | |
| -- a/a.go -- | |
| package a | |
| import "example.com/lib" | |
| var _ lib.I //@hover("I", "I", I) | |
| var _ lib.J //@hover("J", "J", J) | |
| var _ lib.S //@hover("S", "S", S) | |
| -- @I -- | |
| ```go | |
| type I interface { | |
| A() | |
| b() | |
| J | |
| } | |
| ``` | |
| --- | |
| ```go | |
| func (lib.J) C() | |
| ``` | |
| --- | |
| [`lib.I` on pkg.go.dev](https://pkg.go.dev/example.com/lib#I) | |
| -- @J -- | |
| ```go | |
| type J interface{ C() } | |
| ``` | |
| --- | |
| [`lib.J` on pkg.go.dev](https://pkg.go.dev/example.com/lib#J) | |
| -- @S -- | |
| ```go | |
| type S struct{ I } | |
| ``` | |
| --- | |
| ```go | |
| func (s lib.S) A() | |
| func (lib.J) C() | |
| func (s *lib.S) PA() | |
| ``` | |
| --- | |
| [`lib.S` on pkg.go.dev](https://pkg.go.dev/example.com/lib#S) |