From dfe29798012e5b064d21263dad5faba5b04a94e4 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 3 Dec 2012 18:49:47 -0800 Subject: [PATCH] test: add test for unused calls to builtin functions R=gri CC=golang-dev https://golang.org/cl/6871054 --- test/fixedbugs/issue4463.go | 87 +++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 test/fixedbugs/issue4463.go diff --git a/test/fixedbugs/issue4463.go b/test/fixedbugs/issue4463.go new file mode 100644 index 0000000000..578173aba5 --- /dev/null +++ b/test/fixedbugs/issue4463.go @@ -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() +}