summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h
diff options
context:
space:
mode:
authorJonas Toth <jonas.toth@gmail.com>2018-10-31 16:50:44 +0000
committerJonas Toth <jonas.toth@gmail.com>2018-10-31 16:50:44 +0000
commit0ea5af7acb33c8b455edea3a02ee2ffcbbcad3f8 (patch)
tree8cece7013e098f165ee66914058a38aa6038c432 /clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h
parent1c254c6716cd01a228c5c35a225a45e6d8ee51ad (diff)
downloadbcm5719-llvm-0ea5af7acb33c8b455edea3a02ee2ffcbbcad3f8.tar.gz
bcm5719-llvm-0ea5af7acb33c8b455edea3a02ee2ffcbbcad3f8.zip
[clang-tidy] new check 'readability-isolate-declaration'
Summary: This patch introduces a new clang-tidy check that matches on all `declStmt` that declare more then one variable and transform them into one statement per declaration if possible. It currently only focusses on variable declarations but should be extended to cover more kinds of declarations in the future. It is related to https://reviews.llvm.org/D27621 and does use it's extensive test-suite. Thank you to firolino for his work! Reviewers: rsmith, aaron.ballman, alexfh, hokein, kbobyrev Reviewed By: aaron.ballman Subscribers: ZaMaZaN4iK, mgehre, nemanjai, kbarton, lebedev.ri, Eugene.Zelenko, mgorny, xazax.hun, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D51949 llvm-svn: 345735
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h')
-rw-r--r--clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h b/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h
new file mode 100644
index 00000000000..b7f4793d9d1
--- /dev/null
+++ b/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.h
@@ -0,0 +1,36 @@
+//===--- IsolateDeclarationCheck.h - clang-tidy -----------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_ISOLATEDECLCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_ISOLATEDECLCHECK_H
+
+#include "../ClangTidy.h"
+
+namespace clang {
+namespace tidy {
+namespace readability {
+
+/// This check diagnoses all DeclStmt's declaring more than one variable and
+/// tries to refactor the code to one statement per declaration.
+///
+/// For the user-facing documentation see:
+/// http://clang.llvm.org/extra/clang-tidy/checks/readability-isolate-declaration.html
+class IsolateDeclarationCheck : public ClangTidyCheck {
+public:
+ IsolateDeclarationCheck(StringRef Name, ClangTidyContext *Context)
+ : ClangTidyCheck(Name, Context) {}
+ void registerMatchers(ast_matchers::MatchFinder *Finder) override;
+ void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
+};
+
+} // namespace readability
+} // namespace tidy
+} // namespace clang
+
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_ISOLATEDECLCHECK_H
OpenPOWER on IntegriCloud