Bugfix/zero number literal initialization #406
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.
Description
If the rpg code contains
0
formatted as0000
or00.00
, the precision of such constants, computed throughIntLiteral
orRealLiteral
, is always 1.This behavior is due to the fact that:
"0000".toLong()
is0
and the precision is1
BigDecimal("00.00")
has precision1
and scale2
While the first case was (more on less) predictable, the second one, honestly was not.
However, to fix this issue I have added property
precision
both forIntLiteral
andRealLiteral
and lightly changed theExpression.type()
implementation.This fix is necessary because
Expression.type()
is vital in theEDITC
fixing which is in work in progress.Checklist:
./gradlew ktlintCheck
)./gradlew check
)docs
directory