alexfh added inline comments.

================
Comment at: clang-tidy/readability/OperatorsRepresentationCheck.cpp:34
+
+  if (const auto *B = Result.Nodes.getNodeAs<BinaryOperator>("binary")) {
+    switch (B->getOpcode()) {
----------------
aaron.ballman wrote:
> mgehre wrote:
> > aaron.ballman wrote:
> > > alexfh wrote:
> > > > aaron.ballman wrote:
> > > > > I think this would make more sense lifted into an AST matcher -- 
> > > > > there are bound to be a *lot* of binary operators, so letting the 
> > > > > matcher memoize things is likely to give better performance.
> > > > Any reasons not to do this on the lexer level?
> > > Technical reasons? None.
> > > User-experience reasons? We wouldn't want this to be on by default (I 
> > > don't think) and we usually don't implement off-by-default diagnostics in 
> > > Clang. I think a case could be made for doing it in the Lexer if the 
> > > performance is really that bad with a clang-tidy check and we couldn't 
> > > improve it here, though.
> > Do I correctly understand that "doing this on lexer level" would mean to 
> > implement this as a warning directly into clang? If yes, would it be 
> > possible to generate fixits and have them possibly applied automatically 
> > (as it is the case for clang-tidy)?
> You are correct, that means implementing it as a warning in Clang. I believe 
> you can still generate those fixits from lexer-level diagnostics, but have 
> not verified it.
> 
> However, I don't think this diagnostic would be appropriate for Clang because 
> it would have to be off by default.
Actually, I was thinking about changing this clang-tidy check to analyze token 
stream somehow (probably by handling `PPCallbacks` to detect ranges that need 
to be re-lexed) instead of matching the AST. I didn't intend to propose a new 
Clang warning (but it looks like the wording was misleading).


https://reviews.llvm.org/D31308



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

Reply via email to