summaryrefslogtreecommitdiff
path: root/test/typecheck.go
diff options
context:
space:
mode:
authorAkshat Kumar <seed@mail.nanosouffle.net>2012-10-07 14:11:59 +0800
committerShenghou Ma <minux.ma@gmail.com>2012-10-07 14:11:59 +0800
commit51e8fe5b1b6ae86976fb8e6d6333f14299b36b17 (patch)
treeb1eb70a235b383bfb757c7aecae6aaa83c2d8e43 /test/typecheck.go
parenta45777fe9975583cac3ef7ee5d61937f5a003c5a (diff)
downloadgo-git-51e8fe5b1b6ae86976fb8e6d6333f14299b36b17.tar.gz
cmd/gc: don't dereference a nil Type pointer in widstruct
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
Diffstat (limited to 'test/typecheck.go')
-rw-r--r--test/typecheck.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/typecheck.go b/test/typecheck.go
new file mode 100644
index 0000000000..239ceacc69
--- /dev/null
+++ b/test/typecheck.go
@@ -0,0 +1,18 @@
+// 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"
+}