blob: b157a71126d7a09c4025234e00afdd5f1fc5260d [file] [log] [blame]
// Package a is a package for testing go to definition.
package a //@mark(aPackage, "a "),hover("a ", aPackage)
import (
"fmt"
"go/types"
"sync"
)
var (
// x is a variable.
x string //@x,hover("x", x)
)
// Constant block. When I hover on h, I should see this comment.
const (
// When I hover on g, I should see this comment.
g = 1 //@g,hover("g", g)
h = 2 //@h,hover("h", h)
)
// z is a variable too.
var z string //@z,hover("z", z)
type A string //@mark(AString, "A")
func AStuff() { //@AStuff
x := 5
Random2(x) //@godef("dom2", Random2)
Random() //@godef("()", Random)
var err error //@err
fmt.Printf("%v", err) //@godef("err", err)
var y string //@string,hover("string", string)
_ = make([]int, 0) //@make,hover("make", make)
var mu sync.Mutex
mu.Lock() //@Lock,hover("Lock", Lock)
var typ *types.Named //@mark(typesImport, "types"),hover("types", typesImport)
typ.Obj().Name() //@Name,hover("Name", Name)
}
type A struct {
}
func (_ A) Hi() {} //@mark(AHi, "Hi")
type S struct {
Field int //@mark(AField, "Field")
R // embed a struct
H // embed an interface
}
type R struct {
Field2 int //@mark(AField2, "Field2")
}
func (_ R) Hey() {} //@mark(AHey, "Hey")
type H interface {
Goodbye() //@mark(AGoodbye, "Goodbye")
}
type I interface {
B() //@mark(AB, "B")
J
}
type J interface {
Hello() //@mark(AHello, "Hello")
}