diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-11-24 14:09:23 +0100 |
---|---|---|
committer | P-E-P <32375388+P-E-P@users.noreply.github.com> | 2023-12-01 10:24:45 +0000 |
commit | fba0a7b945036ce83a38f9111772bf48adced92a (patch) | |
tree | ac4d39670dda449d63cb8f4747e37f011116c191 /gcc/rust/util/rust-attributes.cc | |
parent | 48942f64d51d215d6b8b1d84bbd648960afaaf60 (diff) | |
download | gcc-fba0a7b945036ce83a38f9111772bf48adced92a.zip gcc-fba0a7b945036ce83a38f9111772bf48adced92a.tar.gz gcc-fba0a7b945036ce83a38f9111772bf48adced92a.tar.bz2 |
Change the attribute checker visitor to default one
Make the attribute checker visitor inherit from the default visitor
in order to keep visit behavior shared.
gcc/rust/ChangeLog:
* util/rust-attributes.cc (AttributeChecker::visit): Add visit function
for crates.
* util/rust-attributes.h (class AttributeChecker): Update function
prototypes.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/util/rust-attributes.cc')
-rw-r--r-- | gcc/rust/util/rust-attributes.cc | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/gcc/rust/util/rust-attributes.cc b/gcc/rust/util/rust-attributes.cc index 99931ff..5a43224 100644 --- a/gcc/rust/util/rust-attributes.cc +++ b/gcc/rust/util/rust-attributes.cc @@ -16,6 +16,7 @@ // along with GCC; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +#include "rust-ast-visitor.h" #include "rust-system.h" #include "rust-session-manager.h" #include "rust-attributes.h" @@ -95,6 +96,12 @@ AttributeChecker::AttributeChecker () {} void AttributeChecker::go (AST::Crate &crate) { + visit (crate); +} + +void +AttributeChecker::visit (AST::Crate &crate) +{ check_attributes (crate.get_inner_attrs ()); for (auto &item : crate.items) @@ -468,8 +475,8 @@ AttributeChecker::visit (AST::BlockExpr &expr) check_proc_macro_non_root (item->get_outer_attrs (), item->get_locus ()); } - stmt->accept_vis (*this); } + AST::DefaultASTVisitor::visit (expr); } void @@ -513,12 +520,6 @@ AttributeChecker::visit (AST::ReturnExpr &) {} void -AttributeChecker::visit (AST::UnsafeBlockExpr &expr) -{ - expr.get_block_expr ()->accept_vis (*this); -} - -void AttributeChecker::visit (AST::LoopExpr &) {} @@ -582,8 +583,8 @@ AttributeChecker::visit (AST::Module &module) for (auto &item : module.get_items ()) { check_proc_macro_non_root (item->get_outer_attrs (), item->get_locus ()); - item->accept_vis (*this); } + AST::DefaultASTVisitor::visit (module); } void @@ -754,16 +755,14 @@ void AttributeChecker::visit (AST::InherentImpl &impl) { check_proc_macro_non_function (impl.get_outer_attrs ()); - for (auto &item : impl.get_impl_items ()) - item->accept_vis (*this); + AST::DefaultASTVisitor::visit (impl); } void AttributeChecker::visit (AST::TraitImpl &impl) { check_proc_macro_non_function (impl.get_outer_attrs ()); - for (auto &item : impl.get_impl_items ()) - item->accept_vis (*this); + AST::DefaultASTVisitor::visit (impl); } void |