mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
The nil dereference in the next few lines doesn't seem
to cause a segmentation fault on Unix, but does seem
to halt the Go compiler.
The following is a test case:
>>>
package main
func mine(int b) int {
return b + 2
}
func main() {
mine()
c = mine()
}
<<<
Without this change only the following is caught:
typecheck.go:3: undefined: b
typecheck.go:4: undefined: b
with it, we catch all the errors:
typecheck.go:3: undefined: b
typecheck.go:4: undefined: b
typecheck.go:10: undefined: c
typecheck.go:10: cannot assign to c .
R=rsc, minux.ma
CC=golang-dev
https://golang.org/cl/6542060
18 lines
347 B
Go
18 lines
347 B
Go
// errorcheck
|
|
|
|
// Verify that the Go compiler will not
|
|
// die after running into an undefined
|
|
// type in the argument list for a
|
|
// function.
|
|
// Does not compile.
|
|
|
|
package main
|
|
|
|
func mine(int b) int { // ERROR "undefined.*b"
|
|
return b + 2 // ERROR "undefined.*b"
|
|
}
|
|
|
|
func main() {
|
|
mine()
|
|
c = mine() // ERROR "undefined.*c" "cannot assign to c"
|
|
}
|