summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h')
-rw-r--r--clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h41
1 files changed, 29 insertions, 12 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
index d349fdbfb7c..41271696f04 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h
@@ -26,25 +26,42 @@ public:
private:
struct RangeDescriptor {
+ RangeDescriptor();
bool ContainerNeedsDereference;
bool DerefByConstRef;
bool DerefByValue;
bool IsTriviallyCopyable;
+ std::string ContainerString;
};
void doConversion(ASTContext *Context, const VarDecl *IndexVar,
- const VarDecl *MaybeContainer, StringRef ContainerString,
- const UsageResult &Usages, const DeclStmt *AliasDecl,
- bool AliasUseRequired, bool AliasFromForInit,
- const ForStmt *TheLoop, RangeDescriptor Descriptor);
-
- StringRef checkRejections(ASTContext *Context, const Expr *ContainerExpr,
- const ForStmt *TheLoop);
-
- void findAndVerifyUsages(ASTContext *Context, const VarDecl *LoopVar,
- const VarDecl *EndVar, const Expr *ContainerExpr,
- const Expr *BoundExpr, const ForStmt *TheLoop,
- LoopFixerKind FixerKind, RangeDescriptor Descriptor);
+ const VarDecl *MaybeContainer, const UsageResult &Usages,
+ const DeclStmt *AliasDecl, bool AliasUseRequired,
+ bool AliasFromForInit, const ForStmt *Loop,
+ RangeDescriptor Descriptor);
+
+ StringRef getContainerString(ASTContext *Context, const ForStmt *Loop,
+ const Expr *ContainerExpr);
+
+ void getArrayLoopQualifiers(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ const Expr *ContainerExpr,
+ const UsageResult &Usages,
+ RangeDescriptor &Descriptor);
+
+ void getIteratorLoopQualifiers(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ RangeDescriptor &Descriptor);
+
+ void determineRangeDescriptor(ASTContext *Context,
+ const ast_matchers::BoundNodes &Nodes,
+ const ForStmt *Loop, LoopFixerKind FixerKind,
+ const Expr *ContainerExpr,
+ const UsageResult &Usages,
+ RangeDescriptor &Descriptor);
+
+ bool isConvertible(ASTContext *Context, const ast_matchers::BoundNodes &Nodes,
+ const ForStmt *Loop, LoopFixerKind FixerKind);
std::unique_ptr<TUTrackingInfo> TUInfo;
Confidence::Level MinConfidence;
OpenPOWER on IntegriCloud