It was checking if the result (float) type was a signed int rather than checking the operand (integer) type.