Fix overflow issues occurs when *unchecked-math* is disabled #337
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.
fixes: #332
This PR fixes issues found in #330 (review)
Some functions under
cljam.io.cram
andcljam.io.util.lsb
used the checked narrowing conversions of numerical values (byte
,int
, ...) or implicit conversions with typed method callings of Java core library.These narrowing of numeric types works fine as long as
*unchecked-math*
is set totrue
or only non-negative integers are involved. However, if*unchecked-math*
isfalse
(which is the default) and a negative integer is provided, an exception is thrown.In this PR, I have explicitly applied unchecked narrowing (
unchecked-byte
,unchecked-int
, ...) to bypass range checks and ensure the intended output.I have also fixed the
:gloval-vars
option in the project to reset the compiler options while testing in CI.I have confirmed that
lein test :all
passes.