| package b |
| |
| import ( |
| myFoo "golang.org/x/tools/internal/lsp/foo" //@mark(myFoo, "myFoo"),godef("myFoo", myFoo) |
| "golang.org/x/tools/internal/lsp/godef/a" //@mark(AImport, re"\".*\"") |
| ) |
| |
| type Embed struct { |
| *a.A |
| a.I |
| a.S |
| } |
| |
| func _() { |
| e := Embed{} |
| e.Hi() //@hover("Hi", AHi) |
| e.B() //@hover("B", AB) |
| e.Field //@hover("Field", AField) |
| e.Field2 //@hover("Field2", AField2) |
| e.Hello() //@hover("Hello", AHello) |
| e.Hey() //@hover("Hey", AHey) |
| e.Goodbye() //@hover("Goodbye", AGoodbye) |
| } |
| |
| type aAlias = a.A //@mark(aAlias, "aAlias") |
| |
| type S1 struct { //@S1 |
| F1 int //@mark(S1F1, "F1") |
| S2 //@godef("S2", S2),mark(S1S2, "S2") |
| a.A //@godef("A", AString) |
| aAlias //@godef("a", aAlias) |
| } |
| |
| type S2 struct { //@S2 |
| F1 string //@mark(S2F1, "F1") |
| F2 int //@mark(S2F2, "F2") |
| *a.A //@godef("A", AString),godef("a",AImport) |
| } |
| |
| type S3 struct { |
| F1 struct { |
| a.A //@godef("A", AString) |
| } |
| } |
| |
| func Bar() { |
| a.AStuff() //@godef("AStuff", AStuff) |
| var x S1 //@godef("S1", S1) |
| _ = x.S2 //@godef("S2", S1S2) |
| _ = x.F1 //@godef("F1", S1F1) |
| _ = x.F2 //@godef("F2", S2F2) |
| _ = x.S2.F1 //@godef("F1", S2F1) |
| |
| var _ *myFoo.StructFoo //@godef("myFoo", myFoo) |
| } |
| |
| const X = 0 //@mark(bX, "X"),godef("X", bX) |