This test checks the output of textDocument/semanticTokens/range.

TODO: add more assertions.

-- settings.json --
{
	"semanticTokens": true
}

-- a.go --
package p //@token("package", "keyword", "")

const C = 42 //@token("C", "variable", "definition readonly number")

func F() { //@token("F", "function", "definition signature")
	x := 2 + 3//@token("x", "variable", "definition number"),token("2", "number", ""),token("+", "operator", "")
	_ = x //@token("x", "variable", "number")
	_ = F //@token("F", "function", "signature")
}

func _() {
	// A goto's label cannot be found by ascending the syntax tree.
	goto loop //@ token("goto", "keyword", ""), token("loop", "label", "")

loop: //@token("loop", "label", "definition")
	for {
		continue loop //@ token("continue", "keyword", ""), token("loop", "label", "")
	}
}
