typechecker: Allow field references in methods #1381
Merged
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.
Allow creating local references to struct fields in methods.
It turned out the way we were checking scope lifetimes was a bit backwards. We use this method every to guard against the inverse (the child scope outliving the parent) but the method wasn't implemented that way. To be honest, I still don't understand a 100% why some tests were passing in the old implementation.
I also had to invert the exit condition to account for the fact that comptime scope parent chains are disjunct from runtime scope parent chains, but at least we now know that the json parser sample is testing for that case 😉.
Fixing this also surfaced that the
stores_arguments
attribute test wasn't actually testing the feature but was passing due to the bug. I had to adjust it to actually test the failure case for it to continue to pass.Progress on #1379.