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
E1andE2for free variables if one or both ofE1orE2is or contains a member expression. This extends the check that was already done to skip free variable checking ifE1orE2read memory via a pointer.