#include "ChainedComparisonCheck.h"
#include "clang/AST/ASTContext.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include <algorithm>
usingnamespaceclang::ast_matchers;
namespace clang::tidy::bugprone {
static bool isExprAComparisonOperator(const Expr *E) { … }
namespace {
AST_MATCHER(BinaryOperator,
hasBinaryOperatorAChildComparisonOperatorWithoutParen) { … }
AST_MATCHER(CXXOperatorCallExpr,
hasCppOperatorAChildComparisonOperatorWithoutParen) { … }
struct ChainedComparisonData { … };
void ChainedComparisonData::add(const Expr *Operand) { … }
void ChainedComparisonData::add(llvm::StringRef Opcode) { … }
void ChainedComparisonData::extract(const BinaryOperator *Op) { … }
void ChainedComparisonData::extract(const CXXOperatorCallExpr *Op) { … }
void ChainedComparisonData::extract(const Expr *Op) { … }
}
void ChainedComparisonCheck::registerMatchers(MatchFinder *Finder) { … }
void ChainedComparisonCheck::check(const MatchFinder::MatchResult &Result) { … }
}