================
@@ -972,6 +972,12 @@ class Sema final : public SemaBase {
   /// Calls \c Lexer::getLocForEndOfToken()
   SourceLocation getLocForEndOfToken(SourceLocation Loc, unsigned Offset = 0);
 
+  /// Calls \c Lexer::findNextToken() to find the next token, and if the
+  /// locations of both ends of the token can be resolved it return that
----------------
ojhunt wrote:

I've been talking to @cor3ntin about this as I added some macro tests and they 
aren't working as I believe they should, and I think I understand my mistake (I 
misunderstood the docs for `Lexer::findNextToken`) my intention is to require 
both ends to not be in a macro, and then add an additional test for a macro in 
the middle wrapping a comma to make sure that if the comma comes from a macro 
(rather than any subset of the capture expression) we don't try to produce a 
fixit.

In principle it would be easy to handle

```cpp
#define COMMA ,
```

But I think there are too many ways for macros to do weird things to warrant 
even trying in such a case. I think that's also a reasonable tradeoff - a macro 
around subsets of the capture seems vanishingly unlikely so not providing a 
fixit in such cases seems fair.

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

Reply via email to