github.com/v2fly/tools@v0.100.0/internal/lsp/testdata/variadic/variadic.go.in (about)

     1  package variadic
     2  
     3  func foo(i int, strs ...string) {}
     4  
     5  func bar() []string { //@item(vFunc, "bar", "func() []string", "func")
     6  	return nil
     7  }
     8  
     9  func _() {
    10  	var (
    11  		i  int        //@item(vInt, "i", "int", "var")
    12  		s  string     //@item(vStr, "s", "string", "var")
    13  		ss []string   //@item(vStrSlice, "ss", "[]string", "var")
    14  		v interface{} //@item(vIntf, "v", "interface{}", "var")
    15  	)
    16  
    17  	foo()           //@rank(")", vInt, vStr),rank(")", vInt, vStrSlice)
    18  	foo(123, )      //@rank(")", vStr, vInt),rank(")", vStrSlice, vInt)
    19  	foo(123, "", )  //@rank(")", vStr, vInt),rank(")", vStr, vStrSlice)
    20  	foo(123, s, "") //@rank(", \"", vStr, vStrSlice)
    21  
    22    // snippet will add the "..." for you
    23  	foo(123, ) //@snippet(")", vStrSlice, "ss...", "ss..."),snippet(")", vFunc, "bar()...", "bar()..."),snippet(")", vStr, "s", "s")
    24  
    25  	// don't add "..." for interface{}
    26  	foo(123, ) //@snippet(")", vIntf, "v", "v")
    27  }
    28  
    29  func qux(...func()) {}
    30  func f()            {} //@item(vVarArg, "f", "func()", "func")
    31  
    32  func _() {
    33  	qux(f) //@snippet(")", vVarArg, "f", "f")
    34  }
    35  
    36  func _() {
    37  	foo(0, []string{}...) //@complete(")")
    38  }