nridge marked an inline comment as done.
nridge added inline comments.

================
Comment at: clang-tools-extra/clangd/XRefs.cpp:380
 
+  TokenFlavor Flavor = getTokenFlavor(Loc, SM, AST.getLangOpts());
+  // Only consider comment and (raw) identifier tokens.
----------------
nridge wrote:
> sammccall wrote:
> > kadircet wrote:
> > > you can rather use `AST.getTokens().spelledTokenAt(Loc)` to get 
> > > preprocessed token, and pass that into getTokenFlavor rather than a 
> > > SourceLocation.
> > for a bit more context: running Lexer::getRawToken runs a raw lex that only 
> > sees the piece of text you point at. If you're inside a huge comment, it 
> > won't know that.
> > 
> > Using AST.getTokens() uses the results of an earlier raw lex of the whole 
> > file.
> Hmm, I've tried this and `spelledTokenAt()` seems to return null for comment 
> tokens.
It looks like there are two reasons for this:

  * The lexer that is producing the token buffer is using `inKeepCommentMode() 
== false`
  * `spelledTokenAt()` only returns a result if you give it the location at the 
beginning of the token, not something in the middle


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76098



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

Reply via email to