ymand wrote:

> > Can you expand on your concern about the clash?
> 
> The clash is happening in `NodesMap`. See,
> 
> 1. the matcher which is associated with `rewriteDescendants` gets "Tag0",
> 2. tags for matchers from `applyfirst` are shifted, they get "Tag1", ...
> 3. that is why `transformer::detail::findSelectedCase` selects incorrect 
> `Tag` from `NodesMap` (this also leads to error "ID not bound", for expected 
> bound ID from other matcher)
> 
> Have I made anything clearer? Do you want for me to update the description of 
> the commit?

Thanks for the explanation (and for your patience). Yes, this would be good to 
specify in the description. That said, I'm still a little unclear:
1. Will any of the new tests trigger the bug?
2. Can you clarify where the matchers  associated with the nested rule will be 
shifted? As far as I can tell, the original match uses Tag0 but happens in a 
separate context (that is, MatchFinder) than the nested match so I don't see 
how they are interacting.

https://github.com/llvm/llvm-project/pull/117658
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to