#include "ExprSequence.h"
#include "clang/AST/ParentMapContext.h"
#include "llvm/ADT/SmallVector.h"
#include <optional>
namespace clang::tidy::utils {
static SmallVector<const Stmt *, 1> getParentStmts(const Stmt *S,
ASTContext *Context) { … }
namespace {
bool isDescendantOrEqual(const Stmt *Descendant, const Stmt *Ancestor,
ASTContext *Context) { … }
bool isDescendantOfArgs(const Stmt *Descendant, const CallExpr *Call,
ASTContext *Context) { … }
llvm::SmallVector<const InitListExpr *>
getAllInitListForms(const InitListExpr *InitList) { … }
}
ExprSequence::ExprSequence(const CFG *TheCFG, const Stmt *Root,
ASTContext *TheContext)
: … { … }
bool ExprSequence::inSequence(const Stmt *Before, const Stmt *After) const { … }
bool ExprSequence::potentiallyAfter(const Stmt *After,
const Stmt *Before) const { … }
const Stmt *ExprSequence::getSequenceSuccessor(const Stmt *S) const { … }
const Stmt *ExprSequence::resolveSyntheticStmt(const Stmt *S) const { … }
StmtToBlockMap::StmtToBlockMap(const CFG *TheCFG, ASTContext *TheContext)
: … { … }
const CFGBlock *StmtToBlockMap::blockContainingStmt(const Stmt *S) const { … }
}