108 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| //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
 | |
| }
 | 
