Skip to content

sanposhiho/wastedassign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

28f0c07 Β· Dec 2, 2024

History

91 Commits
Dec 1, 2024
May 29, 2021
Dec 1, 2024
May 29, 2021
Sep 2, 2020
Aug 3, 2021
Nov 29, 2024
Nov 29, 2024
May 29, 2021
May 29, 2021

Repository files navigation

wastedassign

wastedassign finds wasted assignment statements

found the value ...

  • reassigned, but never used afterward
  • reassigned, but reassigned without using the value

Example

package main

import "fmt"

func f() int {
	a := 0 
        b := 0
        fmt.Print(a)
        fmt.Print(b)
        a = 1  // This reassignment is wasted, because never used afterwards. Wastedassign find this 

        b = 1  // This reassignment is wasted, because reassigned without use this value. Wastedassign find this 
        b = 2
        fmt.Print(b)
        
	return 1 + 2
}
$ go vet -vettool=`which wastedassign` sample.go            
# command-line-arguments
./sample.go:10:2: assigned to a, but never used afterwards
./sample.go:12:2: assigned to b, but reassigned without using the value

Installation

Go version < 1.16

go get -u github.com/sanposhiho/wastedassign/v2/cmd/wastedassign

Go version 1.16+

go install github.com/sanposhiho/wastedassign/v2/cmd/wastedassign@latest

Usage

# in your project

go vet -vettool=`which wastedassign` ./...

And, you can use wastedassign in golangci-lint.

Contribution

I am waiting for your contribution :D

Feel free to create an issue or a PR!

Run test

go test