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

     1  package append
     2  
     3  func foo([]string)  {}
     4  func bar(...string) {}
     5  
     6  func _() {
     7  	var (
     8  		aInt     []int    //@item(appendInt, "aInt", "[]int", "var")
     9  		aStrings []string //@item(appendStrings, "aStrings", "[]string", "var")
    10  		aString  string   //@item(appendString, "aString", "string", "var")
    11  	)
    12  
    13  	foo(append())           //@rank("))", appendStrings, appendInt),rank("))", appendStrings, appendString)
    14  	foo(append(nil, a))     //@rank("))", appendStrings, appendInt),rank("))", appendString, appendInt),snippet("))", appendStrings, "aStrings...", "aStrings...")
    15  	foo(append(nil, "", a)) //@rank("))", appendString, appendInt),rank("))", appendString, appendStrings)
    16  
    17  	// Don't add "..." to append() argument.
    18  	bar(append()) //@snippet("))", appendStrings, "aStrings", "aStrings")
    19  
    20  	type baz struct{}
    21  	baz{}                       //@item(appendBazLiteral, "baz{}", "", "var")
    22  	var bazzes []baz            //@item(appendBazzes, "bazzes", "[]baz", "var")
    23  	var bazzy baz               //@item(appendBazzy, "bazzy", "baz", "var")
    24  	bazzes = append(bazzes, ba) //@rank(")", appendBazzy, appendBazLiteral, appendBazzes)
    25  
    26  	var b struct{ b []baz }
    27  	b.b                  //@item(appendNestedBaz, "b.b", "[]baz", "field")
    28  	b.b = append(b.b, b) //@rank(")", appendBazzy, appendBazLiteral, appendNestedBaz)
    29  
    30  	var aStringsPtr *[]string //@item(appendStringsPtr, "aStringsPtr", "*[]string", "var")
    31  	"*aStringsPtr"            //@item(appendStringsDeref, "*aStringsPtr", "*[]string", "var")
    32  	foo(append(nil, a))       //@snippet("))", appendStringsDeref, "*aStringsPtr...", "*aStringsPtr...")
    33  
    34  	foo(append(nil, *a)) //@snippet("))", appendStringsPtr, "aStringsPtr...", "aStringsPtr...")
    35  }