10 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_LOOP_CONVERT_H 11 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_LOOP_CONVERT_H 13 #include "../ClangTidy.h" 25 void check(
const ast_matchers::MatchFinder::MatchResult &Result)
override;
28 struct RangeDescriptor {
30 bool ContainerNeedsDereference;
33 std::string ContainerString;
37 void getAliasRange(SourceManager &SM, SourceRange &DeclRange);
39 void doConversion(ASTContext *Context,
const VarDecl *IndexVar,
40 const ValueDecl *MaybeContainer,
const UsageResult &Usages,
41 const DeclStmt *AliasDecl,
bool AliasUseRequired,
42 bool AliasFromForInit,
const ForStmt *Loop,
43 RangeDescriptor Descriptor);
45 StringRef getContainerString(ASTContext *Context,
const ForStmt *Loop,
46 const Expr *ContainerExpr);
48 void getArrayLoopQualifiers(ASTContext *Context,
49 const ast_matchers::BoundNodes &Nodes,
50 const Expr *ContainerExpr,
52 RangeDescriptor &Descriptor);
54 void getIteratorLoopQualifiers(ASTContext *Context,
55 const ast_matchers::BoundNodes &Nodes,
56 RangeDescriptor &Descriptor);
58 void determineRangeDescriptor(ASTContext *Context,
59 const ast_matchers::BoundNodes &Nodes,
61 const Expr *ContainerExpr,
63 RangeDescriptor &Descriptor);
65 bool isConvertible(ASTContext *Context,
const ast_matchers::BoundNodes &Nodes,
68 std::unique_ptr<TUTrackingInfo> TUInfo;
69 const unsigned long long MaxCopySize;
78 #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.
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)