func _() {
// Note: if the next line changes to x, the error silences the x+x etc below!
- x1 // ERROR "x1 evaluated but not used"
+ x1 // ERROR "x1 .* not used"
- nil // ERROR "nil evaluated but not used"
- C // ERROR "C evaluated but not used"
- 1 // ERROR "1 evaluated but not used"
- x + x // ERROR "x \+ x evaluated but not used"
- x - x // ERROR "x - x evaluated but not used"
- x | x // ERROR "x \| x evaluated but not used"
- "a" + s // ERROR ".a. \+ s evaluated but not used"
- &x // ERROR "&x evaluated but not used"
- b && b // ERROR "b && b evaluated but not used"
- append(slice, 1) // ERROR "append\(slice, 1\) evaluated but not used"
- string(bytes) // ERROR "string\(bytes\) evaluated but not used"
- string(runes) // ERROR "string\(runes\) evaluated but not used"
+ nil // ERROR "nil .* not used"
+ C // ERROR "C .* not used"
+ 1 // ERROR "1 .* not used"
+ x + x // ERROR "x \+ x .* not used"
+ x - x // ERROR "x - x .* not used"
+ x | x // ERROR "x \| x .* not used"
+ "a" + s // ERROR ".a. \+ s .* not used"
+ &x // ERROR "&x .* not used"
+ b && b // ERROR "b && b .* not used"
+ append(slice, 1) // ERROR "append\(slice, 1\) .* not used"
+ string(bytes) // ERROR "string\(bytes\) .* not used"
+ string(runes) // ERROR "string\(runes\) .* not used"
f0() // ok
f1() // ok
f2() // ok
- _ = f0() // ERROR "f0\(\) used as value"
+ _ = f0() // ERROR "f0\(\) .*used as value"
_ = f1() // ok
_, _ = f2() // ok
- _ = f2() // ERROR "assignment mismatch: 1 variable but f2 returns 2 values"
- T.M0 // ERROR "T.M0 evaluated but not used"
- t.M0 // ERROR "t.M0 evaluated but not used"
- cap // ERROR "use of builtin cap not in function call"
- cap(slice) // ERROR "cap\(slice\) evaluated but not used"
+ _ = f2() // ERROR "assignment mismatch: 1 variable but f2 returns 2 values|cannot assign"
+ _ = f1(), 0 // ERROR "assignment mismatch: 1 variable but 2 values|cannot assign"
+ T.M0 // ERROR "T.M0 .* not used"
+ t.M0 // ERROR "t.M0 .* not used"
+ cap // ERROR "use of builtin cap not in function call|must be called"
+ cap(slice) // ERROR "cap\(slice\) .* not used"
close(c) // ok
- _ = close(c) // ERROR "close\(c\) used as value"
- func() {} // ERROR "func literal evaluated but not used"
+ _ = close(c) // ERROR "close\(c\) .*used as value"
+ func() {} // ERROR "func literal .* not used|is not used"
X{} // ERROR "undefined: X"
- map[string]int{} // ERROR "map\[string\]int{} evaluated but not used"
- struct{}{} // ERROR "struct ?{}{} evaluated but not used"
- [1]int{} // ERROR "\[1\]int{} evaluated but not used"
- []int{} // ERROR "\[\]int{} evaluated but not used"
- &struct{}{} // ERROR "&struct ?{}{} evaluated but not used"
- float32(x) // ERROR "float32\(x\) evaluated but not used"
- I(t) // ERROR "I\(t\) evaluated but not used"
- int(x) // ERROR "int\(x\) evaluated but not used"
+ map[string]int{} // ERROR "map\[string\]int{} .* not used"
+ struct{}{} // ERROR "struct ?{}{} .* not used"
+ [1]int{} // ERROR "\[1\]int{} .* not used"
+ []int{} // ERROR "\[\]int{} .* not used"
+ &struct{}{} // ERROR "&struct ?{}{} .* not used"
+ float32(x) // ERROR "float32\(x\) .* not used"
+ I(t) // ERROR "I\(t\) .* not used"
+ int(x) // ERROR "int\(x\) .* not used"
copy(slice, slice) // ok
_ = copy(slice, slice) // ok
delete(m, 1) // ok
- _ = delete(m, 1) // ERROR "delete\(m, 1\) used as value"
- t.X // ERROR "t.X evaluated but not used"
- tp.X // ERROR "tp.X evaluated but not used"
- t.M // ERROR "t.M evaluated but not used"
- I.M // ERROR "I.M evaluated but not used"
- i.(T) // ERROR "i.\(T\) evaluated but not used"
- x == x // ERROR "x == x evaluated but not used"
- x != x // ERROR "x != x evaluated but not used"
- x != x // ERROR "x != x evaluated but not used"
- x < x // ERROR "x < x evaluated but not used"
- x >= x // ERROR "x >= x evaluated but not used"
- x > x // ERROR "x > x evaluated but not used"
- *tp // ERROR "\*tp evaluated but not used"
- slice[0] // ERROR "slice\[0\] evaluated but not used"
- m[1] // ERROR "m\[1\] evaluated but not used"
- len(slice) // ERROR "len\(slice\) evaluated but not used"
- make(chan int) // ERROR "make\(chan int\) evaluated but not used"
- make(map[int]int) // ERROR "make\(map\[int\]int\) evaluated but not used"
- make([]int, 1) // ERROR "make\(\[\]int, 1\) evaluated but not used"
- x * x // ERROR "x \* x evaluated but not used"
- x / x // ERROR "x / x evaluated but not used"
- x % x // ERROR "x % x evaluated but not used"
- x << x // ERROR "x << x evaluated but not used"
- x >> x // ERROR "x >> x evaluated but not used"
- x & x // ERROR "x & x evaluated but not used"
- x &^ x // ERROR "x &\^ x evaluated but not used"
- new(int) // ERROR "new\(int\) evaluated but not used"
- !b // ERROR "!b evaluated but not used"
- ^x // ERROR "\^x evaluated but not used"
- +x // ERROR "\+x evaluated but not used"
- -x // ERROR "-x evaluated but not used"
- b || b // ERROR "b \|\| b evaluated but not used"
+ _ = delete(m, 1) // ERROR "delete\(m, 1\) .*used as value"
+ t.X // ERROR "t.X .* not used"
+ tp.X // ERROR "tp.X .* not used"
+ t.M // ERROR "t.M .* not used"
+ I.M // ERROR "I.M .* not used"
+ i.(T) // ERROR "i.\(T\) .* not used"
+ x == x // ERROR "x == x .* not used"
+ x != x // ERROR "x != x .* not used"
+ x != x // ERROR "x != x .* not used"
+ x < x // ERROR "x < x .* not used"
+ x >= x // ERROR "x >= x .* not used"
+ x > x // ERROR "x > x .* not used"
+ *tp // ERROR "\*tp .* not used"
+ slice[0] // ERROR "slice\[0\] .* not used"
+ m[1] // ERROR "m\[1\] .* not used"
+ len(slice) // ERROR "len\(slice\) .* not used"
+ make(chan int) // ERROR "make\(chan int\) .* not used"
+ make(map[int]int) // ERROR "make\(map\[int\]int\) .* not used"
+ make([]int, 1) // ERROR "make\(\[\]int, 1\) .* not used"
+ x * x // ERROR "x \* x .* not used"
+ x / x // ERROR "x / x .* not used"
+ x % x // ERROR "x % x .* not used"
+ x << x // ERROR "x << x .* not used"
+ x >> x // ERROR "x >> x .* not used"
+ x & x // ERROR "x & x .* not used"
+ x &^ x // ERROR "x &\^ x .* not used"
+ new(int) // ERROR "new\(int\) .* not used"
+ !b // ERROR "!b .* not used"
+ ^x // ERROR "\^x .* not used"
+ +x // ERROR "\+x .* not used"
+ -x // ERROR "-x .* not used"
+ b || b // ERROR "b \|\| b .* not used"
panic(1) // ok
- _ = panic(1) // ERROR "panic\(1\) used as value"
+ _ = panic(1) // ERROR "panic\(1\) .*used as value"
print(1) // ok
- _ = print(1) // ERROR "print\(1\) used as value"
+ _ = print(1) // ERROR "print\(1\) .*used as value"
println(1) // ok
- _ = println(1) // ERROR "println\(1\) used as value"
+ _ = println(1) // ERROR "println\(1\) .*used as value"
c <- 1 // ok
- slice[1:1] // ERROR "slice\[1:1\] evaluated but not used"
- array[1:1] // ERROR "array\[1:1\] evaluated but not used"
- s[1:1] // ERROR "s\[1:1\] evaluated but not used"
- slice[1:1:1] // ERROR "slice\[1:1:1\] evaluated but not used"
- array[1:1:1] // ERROR "array\[1:1:1\] evaluated but not used"
+ slice[1:1] // ERROR "slice\[1:1\] .* not used"
+ array[1:1] // ERROR "array\[1:1\] .* not used"
+ s[1:1] // ERROR "s\[1:1\] .* not used"
+ slice[1:1:1] // ERROR "slice\[1:1:1\] .* not used"
+ array[1:1:1] // ERROR "array\[1:1:1\] .* not used"
recover() // ok
<-c // ok
- string(r) // ERROR "string\(r\) evaluated but not used"
- iota // ERROR "undefined: iota"
- real(cp) // ERROR "real\(cp\) evaluated but not used"
- imag(cp) // ERROR "imag\(cp\) evaluated but not used"
- complex(1, 2) // ERROR "complex\(1, 2\) evaluated but not used"
- unsafe.Alignof(t.X) // ERROR "unsafe.Alignof\(t.X\) evaluated but not used"
- unsafe.Offsetof(t.X) // ERROR "unsafe.Offsetof\(t.X\) evaluated but not used"
- unsafe.Sizeof(t) // ERROR "unsafe.Sizeof\(t\) evaluated but not used"
- _ = int // ERROR "type int is not an expression"
- (x) // ERROR "x evaluated but not used"
- _ = new(x2) // ERROR "x2 is not a type"
- _ = new(1 + 1) // ERROR "1 \+ 1 is not a type"
+ string(r) // ERROR "string\(r\) .* not used"
+ iota // ERROR "undefined: iota|cannot use iota"
+ real(cp) // ERROR "real\(cp\) .* not used"
+ imag(cp) // ERROR "imag\(cp\) .* not used"
+ complex(1, 2) // ERROR "complex\(1, 2\) .* not used"
+ unsafe.Alignof(t.X) // ERROR "unsafe.Alignof\(t.X\) .* not used"
+ unsafe.Offsetof(t.X) // ERROR "unsafe.Offsetof\(t.X\) .* not used"
+ unsafe.Sizeof(t) // ERROR "unsafe.Sizeof\(t\) .* not used"
+ _ = int // ERROR "type int is not an expression|not an expression"
+ (x) // ERROR "x .* not used|not used"
+ _ = new(x2) // ERROR "x2 is not a type|not a type"
+ // Disabled due to issue #43125.
+ // _ = new(1 + 1) // DISABLED "1 \+ 1 is not a type"
}