mgehre 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: > 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)? ================ Comment at: clang-tidy/readability/OperatorsRepresentationCheck.cpp:68 + if (PrimarySpelling != Spelling) { + diag(OpLoc, "operator uses alternative spelling") + << FixItHint::CreateReplacement(TokenRange, PrimarySpelling); ---------------- aaron.ballman wrote: > This diagnostic doesn't help the user to understand what's wrong with their > code (especially in the presence of multiple operators). Perhaps "'%0' is an > alternative token spelling; consider using '%1'" > > It would be nice if we could say "consider using %1 for <reason>", but I'm > really not certain why we would diagnose this code in the first place (it's > purely a matter of stylistic choice, as I understand it). The main rational for this check is to enforce consistency and thus make it easier to read and comprehend the code. I agree with your proposed diagnostics. https://reviews.llvm.org/D31308 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits