njames93 added inline comments.
================
Comment at:
clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp:586
+
+ auto Not = hasOperatorName("!");
+ auto Or = hasOperatorName("||");
----------------
This whole implementation would be alot simpler(and likely faster) if you
matched on the generic case then in the check callback work out what
replacement you need.
```lang=c++
Finder->addMatcher(
unaryOperator(
Not,
hasUnaryOperand(binaryOperator(
hasAnyOperatorName("&&", "||"),
hasEitherOperand(unaryOperator(Not))))).bind(Demorgan),
this);
```
================
Comment at:
clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp:598-599
+ auto UnlessNotLHS = unless(hasLHS(NotOp));
+ // match !(!a || b)
+ Finder->addMatcher(unaryOperator(Not, hasUnaryOperand(binaryOperator(
+ Or, UnlessNotRHS, NotLHS, RHS)))
----------------
Maybe I'm overthinking this, but how come you don't need the match on the
ParenExpr?
Is there some traversal mode?
================
Comment at: clang-tools-extra/docs/ReleaseNotes.rst:139
+- Expanded :doc:`readability-simplify-boolean-expr
+ <clang-tidy/checks/readability-simplify-boolean-expr>` to simplify
expressions
----------------
Eugene.Zelenko wrote:
> Please use alphabetical order for such entries.
@LegalizeAdulthood I've pushed the change to alphabetize the list in
rG8a9e2dd48d81 seperately, please rebase.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D124650/new/
https://reviews.llvm.org/D124650
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits