| // 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" | |
| } |