1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
This test checks that completion ranking accounts for interface assignability.
-- flags --
-ignore_extra_diags
-- settings.json --
{
"completeUnimported": false,
"deepCompletion": false
}
-- p.go --
package interfacerank
type foo interface {
foo()
}
type fooImpl int
func (*fooImpl) foo() {}
func wantsFoo(foo) {}
func _() {
var (
aa string //@item(irAA, "aa", "string", "var")
ab *fooImpl //@item(irAB, "ab", "*fooImpl", "var")
)
wantsFoo(a) //@complete(")", irAB, irAA)
var ac fooImpl //@item(irAC, "ac", "fooImpl", "var")
wantsFoo(&a) //@complete(")", irAC, irAA, irAB)
}
|