1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
  
     | 
    
      This test checks completion of Go builtins.
-- flags --
-ignore_extra_diags
-filter_builtins=false
-- builtin_args.go --
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")
	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)
}
-- builtin_types.go --
package builtins
func _() {
	var _ []bool //@item(builtinBoolSliceType, "[]bool", "[]bool", "type")
	var _ []bool = make() //@rank(")", builtinBoolSliceType, int)
	var _ []bool = make([], 0) //@rank(",", bool, int)
	var _ [][]bool = make([][], 0) //@rank(",", bool, int)
}
-- builtins.go --
package builtins
// Definitions of builtin completion items that are still used in tests.
/* bool */ //@item(bool, "bool", "", "type")
/* complex(r float64, i float64) */ //@item(complex, "complex", "func(r float64, i float64) complex128", "func")
/* float32 */ //@item(float32, "float32", "", "type")
/* float64 */ //@item(float64, "float64", "", "type")
/* imag(c complex128) float64 */ //@item(imag, "imag", "func(c complex128) float64", "func")
/* int */ //@item(int, "int", "", "type")
/* iota */ //@item(iota, "iota", "", "const")
/* string */ //@item(string, "string", "", "type")
/* true */ //@item(_true, "true", "", "const")
-- constants.go --
package builtins
func _() {
	const (
		foo = iota //@complete(" //", iota)
	)
	iota //@complete(" //")
	var iota int //@item(iotaVar, "iota", "int", "var")
	iota //@complete(" //", iotaVar)
}
func _() {
	var twoRedUpEnd bool //@item(TRUEVar, "twoRedUpEnd", "bool", "var")
	var _ bool = true //@rank(" //", _true, TRUEVar)
}
 
     |