nridge added a comment.

Still haven't had a chance to take a super detailed look, but a few high-level 
thoughts:

1. The AST nodes that reference operator names should store source ranges 
associated with the operator names, such that we shouldn't need to do 
token-by-token manipulation. For example, 
`functionDecl->getNameInfo().getCXXOperatorNameRange()`.
2. I think I appreciate now the issue with `findExplicitReferences()`: it gives 
us `ReferenceLoc` objects, which store a single `SourceLocation` but do **not** 
retain the AST node containing the reference (thereby not allowing us to access 
the source range of the reference easily). We've run into this before (here 
<https://github.com/clangd/clangd/issues/839#issuecomment-899006073>), and 
contemplated modifying `ReferenceLoc` to retain the AST node containing the 
reference, but decided against it, so I guess we should stick to that. That 
said... would it make sense to handle the **single-token** cases with 
`findExplicitReferences()`? Or would that just end up splitting the logic / 
duplicating code more?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119077/new/

https://reviews.llvm.org/D119077

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to