aboutsummaryrefslogtreecommitdiff
path: root/gopls/internal/lsp/testdata/builtins/builtin_args.go
diff options
context:
space:
mode:
Diffstat (limited to 'gopls/internal/lsp/testdata/builtins/builtin_args.go')
-rw-r--r--gopls/internal/lsp/testdata/builtins/builtin_args.go62
1 files changed, 62 insertions, 0 deletions
diff --git a/gopls/internal/lsp/testdata/builtins/builtin_args.go b/gopls/internal/lsp/testdata/builtins/builtin_args.go
new file mode 100644
index 000000000..052777fe9
--- /dev/null
+++ b/gopls/internal/lsp/testdata/builtins/builtin_args.go
@@ -0,0 +1,62 @@
+package builtins
+
+func _() {
+ var (
+ aSlice []int //@item(builtinSlice, "aSlice", "[]int", "var")
+ aMap map[string]int //@item(builtinMap, "aMap", "map[string]int", "var")
+ aString string //@item(builtinString, "aString", "string", "var")
+ aArray [0]int //@item(builtinArray, "aArray", "[0]int", "var")
+ aArrayPtr *[0]int //@item(builtinArrayPtr, "aArrayPtr", "*[0]int", "var")
+ aChan chan int //@item(builtinChan, "aChan", "chan int", "var")
+ aPtr *int //@item(builtinPtr, "aPtr", "*int", "var")
+ aInt int //@item(builtinInt, "aInt", "int", "var")
+ )
+
+ type (
+ aSliceType []int //@item(builtinSliceType, "aSliceType", "[]int", "type")
+ aChanType chan int //@item(builtinChanType, "aChanType", "chan int", "type")
+ aMapType map[string]int //@item(builtinMapType, "aMapType", "map[string]int", "type")
+ )
+
+ close() //@rank(")", builtinChan, builtinSlice)
+
+ append() //@rank(")", builtinSlice, builtinChan)
+
+ var _ []byte = append([]byte(nil), ""...) //@rank(") //")
+
+ copy() //@rank(")", builtinSlice, builtinChan)
+ copy(aSlice, aS) //@rank(")", builtinSlice, builtinString)
+ copy(aS, aSlice) //@rank(",", builtinSlice, builtinString)
+
+ delete() //@rank(")", builtinMap, builtinChan)
+ delete(aMap, aS) //@rank(")", builtinString, builtinSlice)
+
+ aMapFunc := func() map[int]int { //@item(builtinMapFunc, "aMapFunc", "func() map[int]int", "var")
+ return nil
+ }
+ delete() //@rank(")", builtinMapFunc, builtinSlice)
+
+ len() //@rank(")", builtinSlice, builtinInt),rank(")", builtinMap, builtinInt),rank(")", builtinString, builtinInt),rank(")", builtinArray, builtinInt),rank(")", builtinArrayPtr, builtinPtr),rank(")", builtinChan, builtinInt)
+
+ cap() //@rank(")", builtinSlice, builtinMap),rank(")", builtinArray, builtinString),rank(")", builtinArrayPtr, builtinPtr),rank(")", builtinChan, builtinInt)
+
+ make() //@rank(")", builtinMapType, int),rank(")", builtinChanType, int),rank(")", builtinSliceType, int),rank(")", builtinMapType, int)
+ make(aSliceType, a) //@rank(")", builtinInt, builtinSlice)
+
+ type myInt int
+ var mi myInt //@item(builtinMyInt, "mi", "myInt", "var")
+ make(aSliceType, m) //@snippet(")", builtinMyInt, "mi", "mi")
+
+ var _ []int = make() //@rank(")", builtinSliceType, builtinMapType)
+
+ type myStruct struct{} //@item(builtinStructType, "myStruct", "struct{...}", "struct")
+ var _ *myStruct = new() //@rank(")", builtinStructType, int)
+
+ for k := range a { //@rank(" {", builtinSlice, builtinInt),rank(" {", builtinString, builtinInt),rank(" {", builtinChan, builtinInt),rank(" {", builtinArray, builtinInt),rank(" {", builtinArrayPtr, builtinInt),rank(" {", builtinMap, builtinInt),
+ }
+
+ for k, v := range a { //@rank(" {", builtinSlice, builtinChan)
+ }
+
+ <-a //@rank(" //", builtinChan, builtinInt)
+}