blob: afa4335a9c6be31ed5fe115aa4f9ab4e65bbfdc8 [file] [log] [blame]
This test verifies that control flow lighlighting correctly accounts for
multi-name result parameters. In golang/go#60589, it did not.
-- go.mod --
module mod.com
go 1.18
-- p.go --
package p
func _() (foo int, bar, baz string) { //@ loc(func, "func"), loc(foo, "foo"), loc(fooint, "foo int"), loc(int, "int"), loc(bar, "bar"), loc(beforebaz, " baz"), loc(baz, "baz"), loc(barbazstring, "bar, baz string"), loc(beforestring, re`() string`), loc(string, "string")
return 0, "1", "2" //@ loc(return, `return 0, "1", "2"`), loc(l0, "0"), loc(l1, `"1"`), loc(l2, `"2"`)
}
// Assertions, expressed here to avoid clutter above.
// Note that when the cursor is over the field type, there is some
// (likely harmless) redundancy.
//@ highlight(func, func, return)
//@ highlight(foo, foo, l0)
//@ highlight(int, fooint, int, l0)
//@ highlight(bar, bar, l1)
//@ highlight(beforebaz)
//@ highlight(baz, baz, l2)
//@ highlight(beforestring, baz, l2)
//@ highlight(string, barbazstring, string, l1, l2)
//@ highlight(l0, foo, l0)
//@ highlight(l1, bar, l1)
//@ highlight(l2, baz, l2)