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