-- Lock-hover --
```go
func (*sync.Mutex).Lock()
```

[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync?utm_source=gopls#Mutex.Lock)

Lock locks m\.
-- Name-hover --
```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\.
-- Random-definition --
godef/a/random.go:3:6-12: defined here as ```go
func Random() int
```

[`a.Random` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Random)
-- Random-definition-json --
{
	"span": {
		"uri": "file://godef/a/random.go",
		"start": {
			"line": 3,
			"column": 6,
			"offset": 16
		},
		"end": {
			"line": 3,
			"column": 12,
			"offset": 22
		}
	},
	"description": "```go\nfunc Random() int\n```\n\n[`a.Random` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Random)"
}

-- Random-hover --
```go
func Random() int
```

[`a.Random` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Random)
-- Random2-definition --
godef/a/random.go:8:6-13: defined here as ```go
func Random2(y int) int
```

[`a.Random2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Random2)
-- Random2-definition-json --
{
	"span": {
		"uri": "file://godef/a/random.go",
		"start": {
			"line": 8,
			"column": 6,
			"offset": 71
		},
		"end": {
			"line": 8,
			"column": 13,
			"offset": 78
		}
	},
	"description": "```go\nfunc Random2(y int) int\n```\n\n[`a.Random2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Random2)"
}

-- Random2-hover --
```go
func Random2(y int) int
```

[`a.Random2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Random2)
-- aPackage-hover --
Package a is a package for testing go to definition\.
-- err-definition --
godef/a/a.go:33:6-9: defined here as ```go
var err error
```

\@err
-- err-definition-json --
{
	"span": {
		"uri": "file://godef/a/a.go",
		"start": {
			"line": 33,
			"column": 6,
			"offset": 597
		},
		"end": {
			"line": 33,
			"column": 9,
			"offset": 600
		}
	},
	"description": "```go\nvar err error\n```\n\n\\@err"
}

-- err-hover --
```go
var err error
```

\@err
-- g-hover --
```go
const g untyped int = 1
```

When I hover on g, I should see this comment\.
-- h-hover --
```go
const h untyped int = 2
```

Constant block\.
-- make-hover --
```go
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\)\.
-- string-hover --
```go
string
```
-- typesImport-hover --
```go
package types ("go/types")
```

[`types` on pkg.go.dev](https://pkg.go.dev/go/types?utm_source=gopls)
-- x-hover --
```go
var x string
```

x is a variable\.
-- z-hover --
```go
var z string
```

z is a variable too\.
