kadircet added a comment.

thanks, mostly LG with a comment about some edge case. just wanna know what you 
think.



================
Comment at: clang/include/clang/Tooling/Syntax/Tokens.h:281
+  std::vector<Expansion>
+  expansionsAffecting(llvm::ArrayRef<syntax::Token> Spelled) const;
 
----------------
this sounds more like `expansionsAffected` rather than affecting ? maybe my 
mental model requires correction, but it feels like spelled tokens are not 
affected by expansions, it is the other way around.

maybe even `expansionsSpawned` or `triggered`?

this is definitely non-blocking though, i am just bikesheding, comment is 
explanatory enough in any case.


================
Comment at: clang/lib/Tooling/Syntax/Tokens.cpp:431
+std::vector<TokenBuffer::Expansion>
+TokenBuffer::expansionsAffecting(llvm::ArrayRef<syntax::Token> Spelled) const {
+  if (Spelled.empty())
----------------
this might be inconistent with spelledForExpanded from time to time, e.g:

```
#define FOO(X) 123
#define BAR

void foo() {
  FOO(BA^R);
}
```

normally BAR has no expansions, but I think it will get merged into outer macro 
expansion e.g. `123` coming from `FOO(BAR)`. (whereas spelledForExpanded will 
treat `BAR` in isolation)

not sure an important limitation but something to keep in mind.


================
Comment at: clang/lib/Tooling/Syntax/Tokens.cpp:254
   // `Spelled` must be a subrange of `File.SpelledTokens`.
   assert(File.SpelledTokens.data() <= Spelled.data());
   assert(&Spelled.back() <=
----------------
these two are also asserted in `fileForSpelled`


================
Comment at: clang/lib/Tooling/Syntax/Tokens.cpp:257
          File.SpelledTokens.data() + File.SpelledTokens.size());
 #ifndef NDEBUG
   auto T1 = Spelled.back().location();
----------------
maybe move that into fileForSpelled too ? (to ensure `Spelled` is contained 
within the returned file)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D84009



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

Reply via email to