Report a coding bug about unused result
guodongli-google opened this issue · 0 comments
guodongli-google commented
At https://github.com/GeertJohan/go.rice/blob/master/box.go#L66, the result of function errors.New
is not actually used since err
is local to case LocateFS
such that errors.New("given name/path is not a directory")
won't be assigned to the one declared outside the loop var err error
.
var err error
for _, method := range order {
...
case LocateFS:
// resolve absolute directory path
err := b.resolveAbsolutePathFromCaller()
...
err = errors.New("given name/path is not a directory")
continue
}
while function errors.New
has no side effect:
func New(text string) error {
return &errorString{text}
}
Another instance is at: https://github.com/GeertJohan/go.rice/blob/master/box.go#L83
A mini bug reproducer is available at:
https://play.golang.org/p/FA2ZsZ34zqJ
A possible fix is not to declare a local err
within the cases, e.g.
case LocateFS:
// resolve absolute directory path
err = b.resolveAbsolutePathFromCaller()
Found by static analyzer #deepgo