py/objint_longlong: Fix longlong interoperability with floats. #17740
+41
−0
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.
Summary
Current longlong implementation does not allow a float as RHS of mathematic operators, as it lacks the delegation code present in mpz. This was mentionned in in #16953 but postponed to a separate PR.
Testing
Test cases similar to
int_big
have been createt forint_64
. The only test case which was not included is thecomplex
test case, as small ports may not include complex support (eg. zephir).The code has been tested on
unix/longlong
variant of development branch.Trade-offs and Alternatives
This fixes a serious limitation of current longlong implementation, so I guess there isn't any tradeoff.