This test checks @diag reports for undeclared variables and functions.
-- x.go --
package undeclared
func x() int {
var z int
z = y //@diag("y", re"(undeclared name|undefined): y")
if z == m { //@diag("m", re"(undeclared name|undefined): m")
z = 1
}
if z == 1 {
z = 1
} else if z == n+1 { //@diag("n", re"(undeclared name|undefined): n")
z = 1
}
switch z {
case 10:
z = 1
case aa: //@diag("aa", re"(undeclared name|undefined): aa")
z = 1
}
return z
}
-- channels.go --
package undeclared
func channels(s string) {
undefinedChannels(c()) //@diag("undefinedChannels", re"(undeclared name|undefined): undefinedChannels")
}
func c() (<-chan string, chan string) {
return make(<-chan string), make(chan string)
}
-- consecutive_params.go --
package undeclared
func consecutiveParams() {
var s string
undefinedConsecutiveParams(s, s) //@diag("undefinedConsecutiveParams", re"(undeclared name|undefined): undefinedConsecutiveParams")
}
-- error_param.go --
package undeclared
func errorParam() {
var err error
undefinedErrorParam(err) //@diag("undefinedErrorParam", re"(undeclared name|undefined): undefinedErrorParam")
}
-- literals.go --
package undeclared
type T struct{}
func literals() {
undefinedLiterals("hey compiler", T{}, &T{}) //@diag("undefinedLiterals", re"(undeclared name|undefined): undefinedLiterals")
}
-- operation.go --
package undeclared
import "time"
func operation() {
undefinedOperation(10 * time.Second) //@diag("undefinedOperation", re"(undeclared name|undefined): undefinedOperation")
}
-- selector.go --
package undeclared
func selector() {
m := map[int]bool{}
undefinedSelector(m[1]) //@diag("undefinedSelector", re"(undeclared name|undefined): undefinedSelector")
}
-- slice.go --
package undeclared
func slice() {
undefinedSlice([]int{1, 2}) //@diag("undefinedSlice", re"(undeclared name|undefined): undefinedSlice")
}
-- tuple.go --
package undeclared
func tuple() {
undefinedTuple(b()) //@diag("undefinedTuple", re"(undeclared name|undefined): undefinedTuple")
}
func b() (string, error) {
return "", nil
}
-- unique.go --
package undeclared
func uniqueArguments() {
var s string
var i int
undefinedUniqueArguments(s, i, s) //@diag("undefinedUniqueArguments", re"(undeclared name|undefined): undefinedUniqueArguments")
}