Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Turns out, using
IToA
for magnitudes was a little bit sloppy.Magnitude values are always unsigned, which means there are meaningful
values that won't fit inside of an
int64_t
. Fortunately, adding allthose constants (#336) was a great stress test to expose this.
I think the most natural fix would be to add a
UIToA
, which can'thandle signed values, but which can handle the "upper half" of
uint64_t
values. This way, we can haveIToA
delegate toUIToA
forthe "integer magnitude" parts of the logic.
Why not just get rid of
IToA
altogether? Well, we do need it forprinting exponents, which can be negative.
Helps #90: this gets the test to pass on #336.