Author: Stephen Kelly Date: 2021-02-27T12:13:24Z New Revision: 302cc8421ee4ac1cf910dd6cd3306c6eae8d0d3e
URL: https://github.com/llvm/llvm-project/commit/302cc8421ee4ac1cf910dd6cd3306c6eae8d0d3e DIFF: https://github.com/llvm/llvm-project/commit/302cc8421ee4ac1cf910dd6cd3306c6eae8d0d3e.diff LOG: [clang-tidy] Simplify boolean expr check Differential Revision: https://reviews.llvm.org/D97153 Added: Modified: clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp index d450df55c6a0..4ea8ef65d3f8 100644 --- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp @@ -71,10 +71,10 @@ const Expr *getBoolLiteral(const MatchFinder::MatchResult &Result, } internal::BindableMatcher<Stmt> literalOrNegatedBool(bool Value) { - return expr(anyOf(cxxBoolLiteral(equals(Value)), - unaryOperator(hasUnaryOperand(ignoringParenImpCasts( - cxxBoolLiteral(equals(!Value)))), - hasOperatorName("!")))); + return expr( + anyOf(cxxBoolLiteral(equals(Value)), + unaryOperator(hasUnaryOperand(cxxBoolLiteral(equals(!Value))), + hasOperatorName("!")))); } internal::Matcher<Stmt> returnsBool(bool Value, StringRef Id = "ignored") { @@ -443,8 +443,7 @@ void SimplifyBooleanExprCheck::matchBoolCondition(MatchFinder *Finder, bool Value, StringRef BooleanId) { Finder->addMatcher( - ifStmt(unless(isInTemplateInstantiation()), - hasCondition(literalOrNegatedBool(Value).bind(BooleanId))) + ifStmt(hasCondition(literalOrNegatedBool(Value).bind(BooleanId))) .bind(IfStmtId), this); } @@ -453,8 +452,7 @@ void SimplifyBooleanExprCheck::matchTernaryResult(MatchFinder *Finder, bool Value, StringRef TernaryId) { Finder->addMatcher( - conditionalOperator(unless(isInTemplateInstantiation()), - hasTrueExpression(literalOrNegatedBool(Value)), + conditionalOperator(hasTrueExpression(literalOrNegatedBool(Value)), hasFalseExpression(literalOrNegatedBool(!Value))) .bind(TernaryId), this); @@ -463,14 +461,12 @@ void SimplifyBooleanExprCheck::matchTernaryResult(MatchFinder *Finder, void SimplifyBooleanExprCheck::matchIfReturnsBool(MatchFinder *Finder, bool Value, StringRef Id) { if (ChainedConditionalReturn) - Finder->addMatcher(ifStmt(unless(isInTemplateInstantiation()), - hasThen(returnsBool(Value, ThenLiteralId)), + Finder->addMatcher(ifStmt(hasThen(returnsBool(Value, ThenLiteralId)), hasElse(returnsBool(!Value))) .bind(Id), this); else - Finder->addMatcher(ifStmt(unless(isInTemplateInstantiation()), - unless(hasParent(ifStmt())), + Finder->addMatcher(ifStmt(unless(hasParent(ifStmt())), hasThen(returnsBool(Value, ThenLiteralId)), hasElse(returnsBool(!Value))) .bind(Id), @@ -495,16 +491,12 @@ void SimplifyBooleanExprCheck::matchIfAssignsBool(MatchFinder *Finder, auto Else = anyOf(SimpleElse, compoundStmt(statementCountIs(1), hasAnySubstatement(SimpleElse))); if (ChainedConditionalAssignment) - Finder->addMatcher(ifStmt(unless(isInTemplateInstantiation()), - hasThen(Then), hasElse(Else)) - .bind(Id), - this); + Finder->addMatcher(ifStmt(hasThen(Then), hasElse(Else)).bind(Id), this); else - Finder->addMatcher(ifStmt(unless(isInTemplateInstantiation()), - unless(hasParent(ifStmt())), hasThen(Then), - hasElse(Else)) - .bind(Id), - this); + Finder->addMatcher( + ifStmt(unless(hasParent(ifStmt())), hasThen(Then), hasElse(Else)) + .bind(Id), + this); } void SimplifyBooleanExprCheck::matchCompoundIfReturnsBool(MatchFinder *Finder, @@ -512,11 +504,9 @@ void SimplifyBooleanExprCheck::matchCompoundIfReturnsBool(MatchFinder *Finder, StringRef Id) { Finder->addMatcher( compoundStmt( - unless(isInTemplateInstantiation()), hasAnySubstatement( ifStmt(hasThen(returnsBool(Value)), unless(hasElse(stmt())))), - hasAnySubstatement(returnStmt(has(ignoringParenImpCasts( - literalOrNegatedBool(!Value)))) + hasAnySubstatement(returnStmt(has(literalOrNegatedBool(!Value))) .bind(CompoundReturnId))) .bind(Id), this); diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h index af9017d4d3ae..626108cbe22c 100644 --- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h +++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h @@ -27,6 +27,9 @@ class SimplifyBooleanExprCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Options) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; + llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + return TK_IgnoreUnlessSpelledInSource; + } private: class Visitor; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits