| // errorcheck |
| |
| // Copyright 2013 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 4654. |
| // Check error for conversion and 'not used' in defer/go. |
| |
| package p |
| |
| import "unsafe" |
| |
| func f() { |
| defer int(0) // ERROR "defer requires function call, not conversion|is not used" |
| go string([]byte("abc")) // ERROR "go requires function call, not conversion|is not used" |
| |
| var c complex128 |
| var f float64 |
| var t struct {X int} |
| |
| var x []int |
| defer append(x, 1) // ERROR "defer discards result of append|is not used" |
| defer cap(x) // ERROR "defer discards result of cap|is not used" |
| defer complex(1, 2) // ERROR "defer discards result of complex|is not used" |
| defer complex(f, 1) // ERROR "defer discards result of complex|is not used" |
| defer imag(1i) // ERROR "defer discards result of imag|is not used" |
| defer imag(c) // ERROR "defer discards result of imag|is not used" |
| defer len(x) // ERROR "defer discards result of len|is not used" |
| defer make([]int, 1) // ERROR "defer discards result of make|is not used" |
| defer make(chan bool) // ERROR "defer discards result of make|is not used" |
| defer make(map[string]int) // ERROR "defer discards result of make|is not used" |
| defer new(int) // ERROR "defer discards result of new|is not used" |
| defer real(1i) // ERROR "defer discards result of real|is not used" |
| defer real(c) // ERROR "defer discards result of real|is not used" |
| defer append(x, 1) // ERROR "defer discards result of append|is not used" |
| defer append(x, 1) // ERROR "defer discards result of append|is not used" |
| defer unsafe.Alignof(t.X) // ERROR "defer discards result of unsafe.Alignof|is not used" |
| defer unsafe.Offsetof(t.X) // ERROR "defer discards result of unsafe.Offsetof|is not used" |
| defer unsafe.Sizeof(t) // ERROR "defer discards result of unsafe.Sizeof|is not used" |
| |
| defer copy(x, x) // ok |
| m := make(map[int]int) |
| defer delete(m, 1) // ok |
| defer panic(1) // ok |
| defer print(1) // ok |
| defer println(1) // ok |
| defer recover() // ok |
| |
| int(0) // ERROR "int\(0\) evaluated but not used|is not used" |
| string([]byte("abc")) // ERROR "string\(.*\) evaluated but not used|is not used" |
| |
| append(x, 1) // ERROR "not used" |
| cap(x) // ERROR "not used" |
| complex(1, 2) // ERROR "not used" |
| complex(f, 1) // ERROR "not used" |
| imag(1i) // ERROR "not used" |
| imag(c) // ERROR "not used" |
| len(x) // ERROR "not used" |
| make([]int, 1) // ERROR "not used" |
| make(chan bool) // ERROR "not used" |
| make(map[string]int) // ERROR "not used" |
| new(int) // ERROR "not used" |
| real(1i) // ERROR "not used" |
| real(c) // ERROR "not used" |
| append(x, 1) // ERROR "not used" |
| append(x, 1) // ERROR "not used" |
| unsafe.Alignof(t.X) // ERROR "not used" |
| unsafe.Offsetof(t.X) // ERROR "not used" |
| unsafe.Sizeof(t) // ERROR "not used" |
| } |