Skip free variable checking for member expressions #973
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.
Fixes #969
The compiler currently does not track equality information for member expressions of the form
a.f
. This can result in false positive errors when checking bounds for free variables (see issue #969 for an example).This PR modifies the free variable checking logic to skip checking two expressions
E1
andE2
for free variables if one or both ofE1
orE2
is or contains a member expression. This extends the check that was already done to skip free variable checking ifE1
orE2
read memory via a pointer.