Fix incorrect temporary variable type in NewArray operation #1777
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.
Fix #1776
When setting the type of the temporary variable from
NewArray
expression, the original code directly use the array base type instead of the array type.This PR re-construct the
ArrayType
using the base type and the depth at L792-797 of file slither/slithir/convert.py.One imperfect point is that length of nested array is lost since it is not stored in the
NewArray
expression, in other words,new uint[10][](2);
expression will becomenew uint[][](2)
.Fixing this will result in a great modification in the
NewArray
class, which may induce breaking change. So, I just leave it for future work.