Ensure integer type constructor reject anything but numeric literals #163
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.
What was wrong?
Currently, our integer type constructor are too permissive. E.g. the following is allowed today even though it isn't guaranteed that
val
will fit into theu16)
I believe that our integer type constructor should simply not allow being used with anything other than a numeric literal such as
1
or-3
.Numeric literals can be checked on compile time whereas arbitrary variables can't.
How was it fixed?
validate_is_numeric_literal
and used it insideexpr_call
to validateNumericLiteralExpected
Notice that this does not yet entail #145 but it is paving the way for it.
To-Do
OPTIONAL: Update Spec if applicable
Add entry to the release notes (may forgo for trivial changes)
Clean up commit history