]> Cypherpunks repositories - gostls13.git/commitdiff
test: add test for unused calls to builtin functions
authorIan Lance Taylor <iant@golang.org>
Tue, 4 Dec 2012 02:49:47 +0000 (18:49 -0800)
committerIan Lance Taylor <iant@golang.org>
Tue, 4 Dec 2012 02:49:47 +0000 (18:49 -0800)
R=gri
CC=golang-dev
https://golang.org/cl/6871054

test/fixedbugs/issue4463.go [new file with mode: 0644]

diff --git a/test/fixedbugs/issue4463.go b/test/fixedbugs/issue4463.go
new file mode 100644 (file)
index 0000000..578173a
--- /dev/null
@@ -0,0 +1,87 @@
+// errorcheck
+
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 4463: test builtin functions in statement context and in
+// go/defer functions.
+
+package p
+
+import "unsafe"
+
+func F() {
+       var a []int
+       var c chan int
+       var m map[int]int
+       var s struct{ f int }
+
+       append(a, 0)                    // ERROR "not used"
+       cap(a)                          // ERROR "not used"
+       complex(1, 2)                   // ERROR "not used"
+       imag(1i)                        // ERROR "not used"
+       len(a)                          // ERROR "not used"
+       make([]int, 10)                 // ERROR "not used"
+       new(int)                        // ERROR "not used"
+       real(1i)                        // ERROR "not used"
+       unsafe.Alignof(a)               // ERROR "not used"
+       unsafe.Offsetof(s.f)            // ERROR "not used"
+       unsafe.Sizeof(a)                // ERROR "not used"
+
+       close(c)
+       copy(a, a)
+       delete(m, 0)
+       panic(0)
+       print("foo")
+       println("bar")
+       recover()
+
+       (close(c))
+       (copy(a, a))
+       (delete(m, 0))
+       (panic(0))
+       (print("foo"))
+       (println("bar"))
+       (recover())
+
+       go append(a, 0)                 // ERROR "not used"
+       go cap(a)                       // ERROR "not used"
+       go complex(1, 2)                // ERROR "not used"
+       go imag(1i)                     // ERROR "not used"
+       go len(a)                       // ERROR "not used"
+       go make([]int, 10)              // ERROR "not used"
+       go new(int)                     // ERROR "not used"
+       go real(1i)                     // ERROR "not used"
+       go unsafe.Alignof(a)            // ERROR "not used"
+       go unsafe.Offsetof(s.f)         // ERROR "not used"
+       go unsafe.Sizeof(a)             // ERROR "not used"
+
+       go close(c)
+       go copy(a, a)
+       go delete(m, 0)
+       go panic(0)
+       go print("foo")
+       go println("bar")
+       go recover()
+
+       defer append(a, 0)              // ERROR "not used"
+       defer cap(a)                    // ERROR "not used"
+       defer complex(1, 2)             // ERROR "not used"
+       defer imag(1i)                  // ERROR "not used"
+       defer len(a)                    // ERROR "not used"
+       defer make([]int, 10)           // ERROR "not used"
+       defer new(int)                  // ERROR "not used"
+       defer real(1i)                  // ERROR "not used"
+       defer unsafe.Alignof(a)         // ERROR "not used"
+       defer unsafe.Offsetof(s.f)      // ERROR "not used"
+       defer unsafe.Sizeof(a)          // ERROR "not used"
+
+       defer close(c)
+       defer copy(a, a)
+       defer delete(m, 0)
+       defer panic(0)
+       defer print("foo")
+       defer println("bar")
+       defer recover()
+}