This test checks completion related to channels.

-- flags --
-ignore_extra_diags

-- settings.json --
{
	"completeUnimported": false
}

-- channel.go --
package channel

func _() {
	var (
		aa = "123" //@item(channelAA, "aa", "string", "var")
		ab = 123   //@item(channelAB, "ab", "int", "var")
	)

	{
		type myChan chan int
		var mc myChan
		mc <- a //@complete(re"() \\/\\/", channelAB, channelAA)
	}

	{
		var ac chan int //@item(channelAC, "ac", "chan int", "var")
		a <- a //@complete(re"() <-", channelAC, channelAA, channelAB)
	}

	{
		var foo chan int //@item(channelFoo, "foo", "chan int", "var")
		wantsInt := func(int) {} //@item(channelWantsInt, "wantsInt", "func(int)", "var")
		wantsInt(<-) //@rank(re"()\\)", channelFoo, channelAB)
	}
}
