| // Copyright 2023 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. |
| |
| // Package unusedwrite checks for unused writes to the elements of a struct or array object. |
| // |
| // # Analyzer unusedwrite |
| // |
| // unusedwrite: checks for unused writes |
| // |
| // The analyzer reports instances of writes to struct fields and |
| // arrays that are never read. Specifically, when a struct object |
| // or an array is copied, its elements are copied implicitly by |
| // the compiler, and any element write to this copy does nothing |
| // with the original object. |
| // |
| // For example: |
| // |
| // type T struct { x int } |
| // |
| // func f(input []T) { |
| // for i, v := range input { // v is a copy |
| // v.x = i // unused write to field x |
| // } |
| // } |
| // |
| // Another example is about non-pointer receiver: |
| // |
| // type T struct { x int } |
| // |
| // func (t T) f() { // t is a copy |
| // t.x = i // unused write to field x |
| // } |
| package unusedwrite |