package badstmt

import (
	"golang.org/lsptests/foo"
)

// (The syntax error causes suppression of diagnostics for type errors.
// See issue #59888.)

func _(x int) {
	defer foo.F //@complete(" //", Foo),diag(" //", "syntax", "function must be invoked in defer statement|expression in defer must be function call", "error")
	defer foo.F //@complete(" //", Foo)
}

func _() {
	switch true {
	case true:
		go foo.F //@complete(" //", Foo)
	}
}

func _() {
	defer func() {
		foo.F //@complete(" //", Foo),snippet(" //", Foo, "Foo()", "Foo()")

		foo. //@rank(" //", Foo)
	}
}
