diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2014-11-17 11:36:20 +0000 |
---|---|---|
committer | Philip Withnall <philip.withnall@collabora.co.uk> | 2014-11-17 11:36:20 +0000 |
commit | 0d2c91af4cd15b5939e07dc11f735b1c0009c0d0 (patch) | |
tree | 05ee39a29c3ba0219d1fff42417c3639bcc46022 | |
parent | 3b37450c5f0cae4a0a0ad16cfc3658301319ccce (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.cpp | 2 | ||||
-rw-r--r-- | clang-plugin/checker.h | 11 | ||||
-rw-r--r-- | clang-plugin/gir-attributes.h | 4 | ||||
-rw-r--r-- | clang-plugin/gsignal-checker.h | 4 | ||||
-rw-r--r-- | clang-plugin/gvariant-checker.h | 4 | ||||
-rw-r--r-- | clang-plugin/nullability-checker.h | 4 |
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: |