summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2014-11-17 11:36:20 +0000
committerPhilip Withnall <philip.withnall@collabora.co.uk>2014-11-17 11:36:20 +0000
commit0d2c91af4cd15b5939e07dc11f735b1c0009c0d0 (patch)
tree05ee39a29c3ba0219d1fff42417c3639bcc46022
parent3b37450c5f0cae4a0a0ad16cfc3658301319ccce (diff)
plugin: Split Checker into Checker and ASTChecker
Move the AST-specific virtual methods into a subclass, so that the Checker base class can eventually also be used for path-specific checkers.
-rw-r--r--clang-plugin/checker.cpp2
-rw-r--r--clang-plugin/checker.h11
-rw-r--r--clang-plugin/gir-attributes.h4
-rw-r--r--clang-plugin/gsignal-checker.h4
-rw-r--r--clang-plugin/gvariant-checker.h4
-rw-r--r--clang-plugin/nullability-checker.h4
6 files changed, 17 insertions, 12 deletions
diff --git a/clang-plugin/checker.cpp b/clang-plugin/checker.cpp
index 73cdd44..21361e6 100644
--- a/clang-plugin/checker.cpp
+++ b/clang-plugin/checker.cpp
@@ -27,7 +27,7 @@
namespace tartan {
bool
-Checker::is_enabled () const
+ASTChecker::is_enabled () const
{
/* Run away if the plugin is disabled. */
return (this->_disabled_plugins.get ()->find (this->get_name ()) ==
diff --git a/clang-plugin/checker.h b/clang-plugin/checker.h
index 4c86a7e..b9dfaf7 100644
--- a/clang-plugin/checker.h
+++ b/clang-plugin/checker.h
@@ -37,10 +37,16 @@ namespace tartan {
using namespace clang;
-class Checker : public clang::ASTConsumer {
+class Checker {
+public:
+ virtual const std::string get_name () const = 0;
+};
+
+class ASTChecker : public tartan::Checker,
+ public clang::ASTConsumer {
public:
- explicit Checker (
+ explicit ASTChecker (
CompilerInstance& compiler,
std::shared_ptr<const GirManager> gir_manager,
std::shared_ptr<const std::unordered_set<std::string>> disabled_plugins) :
@@ -54,7 +60,6 @@ protected:
public:
bool is_enabled () const;
- virtual const std::string get_name () const = 0;
};
} /* namespace tartan */
diff --git a/clang-plugin/gir-attributes.h b/clang-plugin/gir-attributes.h
index 13ac489..01e1af7 100644
--- a/clang-plugin/gir-attributes.h
+++ b/clang-plugin/gir-attributes.h
@@ -54,14 +54,14 @@ public:
};
-class GirAttributesChecker : public tartan::Checker {
+class GirAttributesChecker : public tartan::ASTChecker {
public:
explicit GirAttributesChecker (
CompilerInstance& compiler,
std::shared_ptr<const GirManager> gir_manager,
std::shared_ptr<const std::unordered_set<std::string>> disabled_plugins) :
- Checker (compiler, gir_manager, disabled_plugins) {}
+ ASTChecker (compiler, gir_manager, disabled_plugins) {}
private:
void _handle_function_decl (FunctionDecl& func);
diff --git a/clang-plugin/gsignal-checker.h b/clang-plugin/gsignal-checker.h
index 9ca86fc..de60a12 100644
--- a/clang-plugin/gsignal-checker.h
+++ b/clang-plugin/gsignal-checker.h
@@ -56,12 +56,12 @@ public:
bool VisitCallExpr (CallExpr* call);
};
-class GSignalConsumer : public tartan::Checker {
+class GSignalConsumer : public tartan::ASTChecker {
public:
GSignalConsumer (CompilerInstance& compiler,
std::shared_ptr<const GirManager> gir_manager,
std::shared_ptr<const std::unordered_set<std::string>> disabled_plugins) :
- Checker (compiler, gir_manager, disabled_plugins),
+ ASTChecker (compiler, gir_manager, disabled_plugins),
_visitor (compiler, gir_manager) {};
private:
diff --git a/clang-plugin/gvariant-checker.h b/clang-plugin/gvariant-checker.h
index 53852b2..5d62f3b 100644
--- a/clang-plugin/gvariant-checker.h
+++ b/clang-plugin/gvariant-checker.h
@@ -53,12 +53,12 @@ public:
bool VisitCallExpr (CallExpr* call);
};
-class GVariantConsumer : public tartan::Checker {
+class GVariantConsumer : public tartan::ASTChecker {
public:
GVariantConsumer (CompilerInstance& compiler,
std::shared_ptr<const GirManager> gir_manager,
std::shared_ptr<const std::unordered_set<std::string>> disabled_plugins) :
- Checker (compiler, gir_manager, disabled_plugins),
+ ASTChecker (compiler, gir_manager, disabled_plugins),
_visitor (compiler) {}
private:
diff --git a/clang-plugin/nullability-checker.h b/clang-plugin/nullability-checker.h
index 44646f6..e991099 100644
--- a/clang-plugin/nullability-checker.h
+++ b/clang-plugin/nullability-checker.h
@@ -53,12 +53,12 @@ public:
bool TraverseFunctionDecl (FunctionDecl* func);
};
-class NullabilityConsumer : public tartan::Checker {
+class NullabilityConsumer : public tartan::ASTChecker {
public:
NullabilityConsumer (CompilerInstance& compiler,
std::shared_ptr<const GirManager> gir_manager,
std::shared_ptr<const std::unordered_set<std::string>> disabled_plugins) :
- Checker (compiler, gir_manager, disabled_plugins),
+ ASTChecker (compiler, gir_manager, disabled_plugins),
_visitor (compiler, gir_manager) {}
private: