internal/lsp/source: move doc links to the bottom of hover

Fixes golang/go#36992

Change-Id: Ie4b749ba6c094c4559a9b3a3e5b63c0b4cbc5dcf
Reviewed-on: https://go-review.googlesource.com/c/tools/+/393642
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
Robert Findley 2022-03-17 17:55:55 -04:00
parent 779dfa4fb2
commit 5ea13d0d89
9 changed files with 117 additions and 117 deletions

View File

@ -773,7 +773,7 @@ func FormatHover(h *HoverJSON, options *Options) (string, error) {
doc := formatDoc(h, options)
var b strings.Builder
parts := []string{signature, link, doc}
parts := []string{signature, doc, link}
for i, el := range parts {
if el != "" {
b.WriteString(el)

View File

@ -3,17 +3,17 @@
func (*sync.Mutex).Lock()
```
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync?utm_source=gopls#Mutex.Lock)
Lock locks m\.
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync?utm_source=gopls#Mutex.Lock)
-- Name-hoverdef --
```go
func (*types.object).Name() string
```
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types?utm_source=gopls#TypeName.Name)
Name returns the object\'s \(package\-local, unqualified\) name\.
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types?utm_source=gopls#TypeName.Name)
-- Random-definition --
godef/a/random.go:3:6-12: defined here as ```go
func Random() int
@ -159,17 +159,17 @@ Constant block\.
func(t Type, size ...IntegerType) Type
```
[`make` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#make)
The make built\-in function allocates and initializes an object of type slice, map, or chan \(only\)\.
[`make` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#make)
-- string-hoverdef --
```go
type string string
```
[`string` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#string)
string is the set of all strings of 8\-bit bytes, conventionally but not necessarily representing UTF\-8\-encoded text\.
[`string` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#string)
-- typesImport-hoverdef --
```go
package types ("go/types")

View File

@ -3,9 +3,9 @@ godef/a/d.go:6:2-8: defined here as ```go
field Member string
```
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
\@Member
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
-- Member-definition-json --
{
"span": {
@ -21,7 +21,7 @@ field Member string
"offset": 96
}
},
"description": "```go\nfield Member string\n```\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)\n\n\\@Member"
"description": "```go\nfield Member string\n```\n\n\\@Member\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)"
}
-- Member-hoverdef --
@ -29,9 +29,9 @@ field Member string
field Member string
```
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
\@Member
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
-- Method-definition --
godef/a/d.go:15:16-22: defined here as ```go
func (Thing).Method(i int) string
@ -67,9 +67,9 @@ godef/a/d.go:9:5-10: defined here as ```go
var Other Thing
```
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
\@Other
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
-- Other-definition-json --
{
"span": {
@ -85,7 +85,7 @@ var Other Thing
"offset": 126
}
},
"description": "```go\nvar Other Thing\n```\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)\n\n\\@Other"
"description": "```go\nvar Other Thing\n```\n\n\\@Other\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)"
}
-- Other-hoverdef --
@ -93,9 +93,9 @@ var Other Thing
var Other Thing
```
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
\@Other
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
-- Thing-definition --
godef/a/d.go:5:6-11: defined here as ```go
type Thing struct {

View File

@ -3,41 +3,41 @@
func (a.I).B()
```
[`(a.I).B` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#I.B)
\@mark\(AB, \"B\"\)
[`(a.I).B` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#I.B)
-- AField-hoverdef --
```go
field Field int
```
[`(a.S).Field` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#S.Field)
\@mark\(AField, \"Field\"\)
[`(a.S).Field` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#S.Field)
-- AField2-hoverdef --
```go
field Field2 int
```
[`(a.R).Field2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#R.Field2)
\@mark\(AField2, \"Field2\"\)
[`(a.R).Field2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#R.Field2)
-- AGoodbye-hoverdef --
```go
func (a.H).Goodbye()
```
[`(a.H).Goodbye` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#H.Goodbye)
\@mark\(AGoodbye, \"Goodbye\"\)
[`(a.H).Goodbye` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#H.Goodbye)
-- AHello-hoverdef --
```go
func (a.J).Hello()
```
[`(a.J).Hello` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#J.Hello)
\@mark\(AHello, \"Hello\"\)
[`(a.J).Hello` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#J.Hello)
-- AHey-hoverdef --
```go
func (a.R).Hey()
@ -85,9 +85,9 @@ godef/a/a.go:26:6-7: defined here as ```go
type A string
```
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
\@mark\(AString, \"A\"\)
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
-- AString-definition-json --
{
"span": {
@ -103,7 +103,7 @@ type A string
"offset": 468
}
},
"description": "```go\ntype A string\n```\n\n[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)\n\n\\@mark\\(AString, \\\"A\\\"\\)"
"description": "```go\ntype A string\n```\n\n\\@mark\\(AString, \\\"A\\\"\\)\n\n[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)"
}
-- AString-hoverdef --
@ -111,9 +111,9 @@ type A string
type A string
```
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
\@mark\(AString, \"A\"\)
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
-- AStuff-definition --
godef/a/a.go:28:6-12: defined here as ```go
func a.AStuff()
@ -189,9 +189,9 @@ godef/b/b.go:28:2-4: defined here as ```go
field F1 int
```
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
\@mark\(S1F1, \"F1\"\)
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
-- S1F1-definition-json --
{
"span": {
@ -207,7 +207,7 @@ field F1 int
"offset": 608
}
},
"description": "```go\nfield F1 int\n```\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)"
"description": "```go\nfield F1 int\n```\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)"
}
-- S1F1-hoverdef --
@ -215,17 +215,17 @@ field F1 int
field F1 int
```
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
\@mark\(S1F1, \"F1\"\)
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
-- S1S2-definition --
godef/b/b.go:29:2-4: defined here as ```go
field S2 S2
```
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
\@godef\(\"S2\", S2\),mark\(S1S2, \"S2\"\)
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
-- S1S2-definition-json --
{
"span": {
@ -241,7 +241,7 @@ field S2 S2
"offset": 640
}
},
"description": "```go\nfield S2 S2\n```\n\n[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)\n\n\\@godef\\(\\\"S2\\\", S2\\),mark\\(S1S2, \\\"S2\\\"\\)"
"description": "```go\nfield S2 S2\n```\n\n\\@godef\\(\\\"S2\\\", S2\\),mark\\(S1S2, \\\"S2\\\"\\)\n\n[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)"
}
-- S1S2-hoverdef --
@ -249,9 +249,9 @@ field S2 S2
field S2 S2
```
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
\@godef\(\"S2\", S2\),mark\(S1S2, \"S2\"\)
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
-- S2-definition --
godef/b/b.go:34:6-8: defined here as ```go
type S2 struct {
@ -295,9 +295,9 @@ godef/b/b.go:35:2-4: defined here as ```go
field F1 string
```
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
\@mark\(S2F1, \"F1\"\)
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
-- S2F1-definition-json --
{
"span": {
@ -313,7 +313,7 @@ field F1 string
"offset": 783
}
},
"description": "```go\nfield F1 string\n```\n\n[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)\n\n\\@mark\\(S2F1, \\\"F1\\\"\\)"
"description": "```go\nfield F1 string\n```\n\n\\@mark\\(S2F1, \\\"F1\\\"\\)\n\n[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)"
}
-- S2F1-hoverdef --
@ -321,17 +321,17 @@ field F1 string
field F1 string
```
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
\@mark\(S2F1, \"F1\"\)
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
-- S2F2-definition --
godef/b/b.go:36:2-4: defined here as ```go
field F2 int
```
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
\@mark\(S2F2, \"F2\"\)
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
-- S2F2-definition-json --
{
"span": {
@ -347,7 +347,7 @@ field F2 int
"offset": 816
}
},
"description": "```go\nfield F2 int\n```\n\n[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)\n\n\\@mark\\(S2F2, \\\"F2\\\"\\)"
"description": "```go\nfield F2 int\n```\n\n\\@mark\\(S2F2, \\\"F2\\\"\\)\n\n[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)"
}
-- S2F2-hoverdef --
@ -355,9 +355,9 @@ field F2 int
field F2 int
```
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
\@mark\(S2F2, \"F2\"\)
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
-- aAlias-definition --
godef/b/b.go:25:6-12: defined here as ```go
type aAlias = a.A
@ -393,9 +393,9 @@ godef/b/b.go:57:7-8: defined here as ```go
const X untyped int = 0
```
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
\@mark\(bX, \"X\"\),godef\(\"X\", bX\)
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
-- bX-definition-json --
{
"span": {
@ -411,7 +411,7 @@ const X untyped int = 0
"offset": 1250
}
},
"description": "```go\nconst X untyped int = 0\n```\n\n[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)\n\n\\@mark\\(bX, \\\"X\\\"\\),godef\\(\\\"X\\\", bX\\)"
"description": "```go\nconst X untyped int = 0\n```\n\n\\@mark\\(bX, \\\"X\\\"\\),godef\\(\\\"X\\\", bX\\)\n\n[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)"
}
-- bX-hoverdef --
@ -419,9 +419,9 @@ const X untyped int = 0
const X untyped int = 0
```
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
\@mark\(bX, \"X\"\),godef\(\"X\", bX\)
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
-- myFoo-definition --
godef/b/b.go:4:2-7: defined here as ```go
package myFoo ("golang.org/x/tools/internal/lsp/foo")

View File

@ -43,9 +43,9 @@ godef/b/b.go:28:2-4: defined here as ```go
field F1 int
```
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
\@mark\(S1F1, \"F1\"\)
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
-- S1F1-definition-json --
{
"span": {
@ -61,7 +61,7 @@ field F1 int
"offset": 608
}
},
"description": "```go\nfield F1 int\n```\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)"
"description": "```go\nfield F1 int\n```\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)"
}
-- S1F1-hoverdef --
@ -69,6 +69,6 @@ field F1 int
field F1 int
```
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
\@mark\(S1F1, \"F1\"\)
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)

View File

@ -3,9 +3,9 @@ godef/a/d.go:6:2-8: defined here as ```go
field Member string
```
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
\@Member
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
-- Member-definition-json --
{
"span": {
@ -21,7 +21,7 @@ field Member string
"offset": 96
}
},
"description": "```go\nfield Member string\n```\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)\n\n\\@Member"
"description": "```go\nfield Member string\n```\n\n\\@Member\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)"
}
-- Member-hoverdef --
@ -29,17 +29,17 @@ field Member string
field Member string
```
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
\@Member
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
-- Other-definition --
godef/a/d.go:9:5-10: defined here as ```go
var a.Other a.Thing
```
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
\@Other
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
-- Other-definition-json --
{
"span": {
@ -55,7 +55,7 @@ var a.Other a.Thing
"offset": 126
}
},
"description": "```go\nvar a.Other a.Thing\n```\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)\n\n\\@Other"
"description": "```go\nvar a.Other a.Thing\n```\n\n\\@Other\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)"
}
-- Other-hoverdef --
@ -63,9 +63,9 @@ var a.Other a.Thing
var a.Other a.Thing
```
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
\@Other
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
-- Thing-definition --
godef/a/d.go:5:6-11: defined here as ```go
type Thing struct {

View File

@ -1,18 +1,19 @@
-- value-hoverdef --
-- Pparam-hoverdef --
```go
type value[T any] struct {
val T //@mark(valueTparam, "T"),hoverdef("T", valueTparam)
Q int //@mark(valueQfield, "Q"),hoverdef("Q", valueQfield)
}
type parameter P interface{~int|string}
```
-- Pvar-hoverdef --
```go
type parameter P interface{~int|string}
```
-- ValueQfield-hoverdef --
```go
field Q int
```
[`(hover.Value).Q` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/hover_generics?utm_source=gopls#Value.Q)
\@mark\(ValueQfield, \"Q\"\),hoverdef\(\"Q\", ValueQfield\)
[`(hover.Value).Q` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/hover_generics?utm_source=gopls#Value.Q)
-- ValueTdecl-hoverdef --
```go
type parameter T any
@ -21,6 +22,13 @@ type parameter T any
```go
type parameter T any
```
-- value-hoverdef --
```go
type value[T any] struct {
val T //@mark(valueTparam, "T"),hoverdef("T", valueTparam)
Q int //@mark(valueQfield, "Q"),hoverdef("Q", valueQfield)
}
```
-- valueQfield-hoverdef --
```go
field Q int
@ -35,11 +43,3 @@ type parameter T any
```go
type parameter T any
```
-- Pparam-hoverdef --
```go
type parameter P interface{~int|string}
```
-- Pvar-hoverdef --
```go
type parameter P interface{~int|string}
```

View File

@ -1,30 +1,3 @@
-- Q-rename --
//go:build go1.18
// +build go1.18
package generics
type G[P any] struct {
F int
}
func (G[_]) M() {}
func F[Q any](Q) {
var p Q //@rename("P", "Q")
_ = p
}
func _() {
var x G[int] //@rename("G", "H")
_ = x.F //@rename("F", "K")
x.M() //@rename("M", "N")
var y G[string]
_ = y.F
y.M()
}
-- H-rename --
//go:build go1.18
// +build go1.18
@ -106,3 +79,30 @@ func _() {
y.N()
}
-- Q-rename --
//go:build go1.18
// +build go1.18
package generics
type G[P any] struct {
F int
}
func (G[_]) M() {}
func F[Q any](Q) {
var p Q //@rename("P", "Q")
_ = p
}
func _() {
var x G[int] //@rename("G", "H")
_ = x.F //@rename("F", "K")
x.M() //@rename("M", "N")
var y G[string]
_ = y.F
y.M()
}

View File

@ -54,7 +54,7 @@ The make built-in function allocates and initializes an object of type slice, ma
myFunc(foo int) string
-- panic(v interface{})-signature --
panic(v interface{})
panic(v any)
The panic built-in function stops normal execution of the current goroutine.