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
Let's consider the following code:
in every backend, for
IntToU8
it is generating code lilkeI already filed an issue that the "contains" test is redundant when we are already iterating over the collection.
But here there is another test that is redundant: The membership test to the newtype.
Indeed, contrary to subset types which can be erased, newtype conversions must be explicit. So we cannot iterate over a newtype different than the newtype obtain like we do for subset types.
Moreover, the test of being a newtype involves a conversion from a U8 (how the newtype is encoded) to a DafnyInt because otherwise we would not be able to compare it with the number "256" which is out of the range.
So this test is not only redundant, it actually adds computation that is not necessary.
How has this been tested?
All existing tests should pass.
By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.