// +build go1.11

package bar

import (
	"golang.org/x/tools/internal/lsp/foo" //@item(foo, "foo", "\"golang.org/x/tools/internal/lsp/foo\"", "package")
)

func helper(i foo.IntFoo) {} //@item(helper, "helper", "func(i foo.IntFoo)", "func")

func _() {
	help //@complete("l", helper)
	_ = foo.StructFoo{} //@complete("S", IntFoo, StructFoo)
}

// Bar is a function.
func Bar() { //@item(Bar, "Bar", "func()", "func", "Bar is a function.")
	foo.Foo()        //@complete("F", Foo, IntFoo, StructFoo)
	var _ foo.IntFoo //@complete("I", IntFoo, StructFoo)
	foo.()           //@complete("(", Foo, IntFoo, StructFoo)
}

func _() {
	var Valentine int //@item(Valentine, "Valentine", "int", "var")

	_ = foo.StructFoo{
		Valu //@complete(" //", Value)
	}
  	_ = foo.StructFoo{
		Va        //@complete("a", Value, Valentine)
	}
	_ = foo.StructFoo{
		Value: 5, //@complete("a", Value)
	}
	_ = foo.StructFoo{
		//@complete("", Value, Valentine, foo, helper, Bar)
	}
	_ = foo.StructFoo{
		Value: Valen //@complete("le", Valentine)
	}
	_ = foo.StructFoo{
		Value:       //@complete(" //", Valentine, foo, helper, Bar)
	}
	_ = foo.StructFoo{
		Value:       //@complete(" ", Valentine, foo, helper, Bar)
	}
}
