1package multireturn
2
3func f0() {} //@item(multiF0, "f0", "func()", "func")
4
5func f1(int) int { return 0 } //@item(multiF1, "f1", "func(int) int", "func")
6
7func f2(int, int) (int, int) { return 0, 0 } //@item(multiF2, "f2", "func(int, int) (int, int)", "func")
8
9func f2Str(string, string) (string, string) { return "", "" } //@item(multiF2Str, "f2Str", "func(string, string) (string, string)", "func")
10
11func f3(int, int, int) (int, int, int) { return 0, 0, 0 } //@item(multiF3, "f3", "func(int, int, int) (int, int, int)", "func")
12
13func _() {
14	_ := f //@rank(" //", multiF1, multiF2)
15
16	_, _ := f //@rank(" //", multiF2, multiF0),rank(" //", multiF1, multiF0)
17
18	_, _ := _, f //@rank(" //", multiF1, multiF2),rank(" //", multiF1, multiF0)
19
20	_, _ := f, abc //@rank(", abc", multiF1, multiF2)
21
22	f1()     //@rank(")", multiF1, multiF0)
23	f1(f)    //@rank(")", multiF1, multiF2)
24	f2(f)    //@rank(")", multiF2, multiF3),rank(")", multiF1, multiF3)
25	f2(1, f) //@rank(")", multiF1, multiF2),rank(")", multiF1, multiF0)
26	f2(1, )  //@rank(")", multiF1, multiF2),rank(")", multiF1, multiF0)
27	f2Str()  //@rank(")", multiF2Str, multiF2)
28
29	var i int
30	i, _ := f //@rank(" //", multiF2, multiF2Str)
31
32	var s string
33	_, s := f //@rank(" //", multiF2Str, multiF2)
34
35	banana, s = f //@rank(" //", multiF2, multiF3)
36
37	var variadic func(int, ...int)
38	variadic() //@rank(")", multiF1, multiF0),rank(")", multiF2, multiF0),rank(")", multiF3, multiF0)
39}
40