Fix lossy-conversions lint warnings #96398
Merged
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.
JDK 20 has added a new javac lint warning for possible lossy conversion in compound assignments - because of implicit type casts, e.g.
warning: [lossy-conversions] implicit cast from int to byte in compound assignment is possibly lossy
The change resolves all such warnings, by either widening the type of the left-hand operand, or explicitly casting the type of the right-hand operand. The changes are largely mechanical.
Resolving these issues allows to build with JDK 20 using JAVA_TOOLCHAIN_HOME.
FYI - The JDK issue that added the javac lint warning - https://bugs.openjdk.org/browse/JDK-8244681
closes #95839