FYI staticcheck has this check.

https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck

On Mon, May 22, 2017 at 9:41 AM,  <oju...@gmail.com> wrote:
> The other day a coworker called me to show a piece of my own code. I confess
> I got a little embarassed. The code was something like this:
>
> func f(a, b uint){
> // ...
> dif := a - b
> if (dif < 0) {
> // do stuff
> }
> }
>
> As it happens, "stuff" was never done.
>
> I expected the compiler to flag that comparison as an error ("You are
> testing to see if an unsigned value is negative. Please go back to school.")
>
> So I tried to code the same comparison in C and compiled using TCC, GCC and
> Microsoft compilers. Then did the same with C++ using GCC, Microsoft.
> Finally I tried in Pascal using the Free Pascal compiler. To my surprise
> only Pascal issued a warning. To be fair, MS compiler issued a warning as
> well, but only after I changed the project warning level to maximum.
>
> I imagine there is a really good reason for compilers not to flag this as an
> error, but I don't have a clue. Someone can tell me why this is so?
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to