-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix the non-miniphase tree traverser #16684
Fix the non-miniphase tree traverser #16684
Conversation
- Fix the non-miniphase traverser - Update test cases
Could you fix the conflicts? @PaulCoral |
I'm concerned that this phase uses both the miniphase traversing logic and a TreeTraverser, aren't you traversing the same trees multiple times? |
@smarter Paul responded to this concern in his initial PR: |
Yes, this seems OK to me. (also I resolve conflict with |
I'm still somewhat confused:
|
I agree that this is a bit confusing. But IMO it should land in another issue and PR. |
The current design of the traversal may appear to be quite confusing and has been a subject of some debate. Here, the full traversal is needed as the
I agree that it may not be optimal, a should maybe be discussed. |
Thanks for the explanation. I think it would be helpful to add a pattern match on |
Merging it now. |
Fixes #16678. The issue is related to the second tree traverser (needed as miniphase traverser do not cover every cases).
Symbols are added to a set during the traversal of their own definition to avoid recording recursive. In the second tree traverser this symbol is never removed, so the following usage are never cached, resulting in false positive.
@szymon-rd