|
|
|
|
|
by tialaramex
734 days ago
|
|
There are several attractive options, any of them eliminates this kind of bug 1. Giving the integer and floating point division operations different operators. If we designate // as specifically the integer division operation then this bug never arises. 2. Don't have untyped constants. If the old constant had been a floating point type, the erroneous change jumps out because we're obliged to write that we now want an integer type. Unfortunately the pre-processor is just text mangling, so this constant had no type as far as C is concerned. Odin is uncommon in modern languages for having untyped constants, Ginger Bill can probably explain why he thought that's a good idea but I can't defend it. 3. Forbid coercion/ promotion of numeric types (perhaps as part of forbidding silent type conversions in general) so now the original expression won't compile anyway. |
|