| 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) |
| } |