This test demonstrates some features of the new marker test runner.

Requires go1.19+ for the new go/doc/comment package.

-- flags --
-min_go=go1.19

-- a.go --
package a

const abc = 0x2a //@hover("b", "abc", abc),hover(" =", "abc", abc)
-- typeswitch.go --
package a

func _() {
	var y interface{}
	switch x := y.(type) { //@hover("x", "x", x)
	case int:
		println(x) //@hover("x", "x", xint),hover(")", "x", xint)
	}
}
-- @abc --
```go
const abc untyped int = 0x2a // 42
```

@hover("b", "abc", abc),hover(" =", "abc", abc)
-- @x --
```go
var x interface{}
```
-- @xint --
```go
var x int
```
