1
0
mirror of https://github.com/golang/go synced 2024-10-01 11:38:34 -06:00
go/internal/lsp/testdata/fieldlist/field_list.go
Muir Manders 5adc67163c internal/lsp: improve completions in *ast.FieldList
Now we always expect type names inside of *ast.FieldList. This expands
the previous func signature logic to also work for *ast.StructType
and *ast.InterfaceType. For example, we will now prefer type names in
cases like:

type myStruct struct { i i<> }

Also, fix a check for anonymous fields to make sure the field is
actually embedded. This fixes cases like this to properly have no
completions:

type myStruct struct { i<> i }

where this will still give type name completions:

type myStruct struct { i<> }

I introduced a new error type source.ErrIsDefinition so source_test.go
could avoid erroring out on tests that make sure definition
identifiers have no completions.

Fixes golang/go#34412.

Change-Id: Ib56cb52af639f2e2b132274d1f04f8074c0d9353
Reviewed-on: https://go-review.googlesource.com/c/tools/+/196560
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-09-25 22:58:16 +00:00

28 lines
764 B
Go

package fieldlist
var myInt int //@item(flVar, "myInt", "int", "var")
type myType int //@item(flType, "myType", "int", "type")
func (my) _() {} //@complete(") _", flType, flVar)
func (my my) _() {} //@complete(" my)"),complete(") _", flType, flVar)
func (myType) _() {} //@complete(") {", flType, flVar)
func (myType) _(my my) {} //@complete(" my)"),complete(") {", flType, flVar)
func (myType) _() my {} //@complete(" {", flType, flVar)
func (myType) _() (my my) {} //@complete(" my"),complete(") {", flType, flVar)
func _() {
var _ struct {
//@complete("", flType, flVar)
m my //@complete(" my"),complete(" //", flType, flVar)
}
var _ interface {
//@complete("", flType, flVar)
m() my //@complete("("),complete(" //", flType, flVar)
}
}