//args: -Ewastedassign package testdata import ( "strings" ) func p(x int) int { return x + 1 } func typeSwitchNoError(val interface{}, times uint) interface{} { switch hoge := val.(type) { case int: return 12 case string: return strings.Repeat(hoge, int(times)) default: return nil } } func noUseParamsNoError(params string) int { a := 12 println(a) return a } func manyif(param int) int { println(param) useOutOfIf := 1212121 // ERROR "wasted assignment" ret := 0 if false { useOutOfIf = 200 // ERROR "reassigned, but never used afterwards" return 0 } else if param == 100 { useOutOfIf = 100 // ERROR "wasted assignment" useOutOfIf = 201 useOutOfIf = p(useOutOfIf) useOutOfIf += 200 // ERROR "wasted assignment" } else { useOutOfIf = 100 useOutOfIf += 100 useOutOfIf = p(useOutOfIf) useOutOfIf += 200 // ERROR "wasted assignment" } if false { useOutOfIf = 200 // ERROR "reassigned, but never used afterwards" return 0 } else if param == 200 { useOutOfIf = 100 // ERROR "wasted assignment" useOutOfIf = 201 useOutOfIf = p(useOutOfIf) useOutOfIf += 200 } else { useOutOfIf = 100 useOutOfIf += 100 useOutOfIf = p(useOutOfIf) useOutOfIf += 200 } println(useOutOfIf) useOutOfIf = 192 useOutOfIf += 100 useOutOfIf += 200 // ERROR "reassigned, but never used afterwards" return ret } func checkLoopTest() int { hoge := 12 noUse := 1111 println(noUse) noUse = 1111 // ERROR "reassigned, but never used afterwards" for { if hoge == 14 { break } hoge = hoge + 1 } return hoge } func infinity() { var i int var hoge int for { hoge = 5 // ERROR "reassigned, but never used afterwards" } println(i) println(hoge) return } func infinity2() { var i int var hoge int for { hoge = 5 break } println(i) println(hoge) return }