9 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_LOOP_CONVERT_H 10 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_LOOP_CONVERT_H 12 #include "../ClangTidyCheck.h" 24 void check(
const ast_matchers::MatchFinder::MatchResult &Result)
override;
27 struct RangeDescriptor {
29 bool ContainerNeedsDereference;
32 std::string ContainerString;
36 void getAliasRange(SourceManager &SM, SourceRange &DeclRange);
38 void doConversion(ASTContext *Context,
const VarDecl *IndexVar,
39 const ValueDecl *MaybeContainer,
const UsageResult &Usages,
40 const DeclStmt *AliasDecl,
bool AliasUseRequired,
41 bool AliasFromForInit,
const ForStmt *Loop,
42 RangeDescriptor Descriptor);
44 StringRef getContainerString(ASTContext *Context,
const ForStmt *Loop,
45 const Expr *ContainerExpr);
47 void getArrayLoopQualifiers(ASTContext *Context,
48 const ast_matchers::BoundNodes &Nodes,
49 const Expr *ContainerExpr,
51 RangeDescriptor &Descriptor);
53 void getIteratorLoopQualifiers(ASTContext *Context,
54 const ast_matchers::BoundNodes &Nodes,
55 RangeDescriptor &Descriptor);
57 void determineRangeDescriptor(ASTContext *Context,
58 const ast_matchers::BoundNodes &Nodes,
60 const Expr *ContainerExpr,
62 RangeDescriptor &Descriptor);
64 bool isConvertible(ASTContext *Context,
const ast_matchers::BoundNodes &Nodes,
67 std::unique_ptr<TUTrackingInfo> TUInfo;
68 const unsigned long long MaxCopySize;
77 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_LOOP_CONVERT_H void storeOptions(ClangTidyOptions::OptionMap &Opts) override
Should store all options supported by this check with their current values or default values for opti...
llvm::SmallVector< Usage, 8 > UsageResult
Base class for all clang-tidy checks.
void registerMatchers(ast_matchers::MatchFinder *Finder) override
Override this to register AST matchers with Finder.
static constexpr llvm::StringLiteral Name
std::map< std::string, std::string > OptionMap
void check(const ast_matchers::MatchFinder::MatchResult &Result) override
ClangTidyChecks that register ASTMatchers should do the actual work in here.
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.
LoopConvertCheck(StringRef Name, ClangTidyContext *Context)