#include "rust-feature-gate.h"
#include "rust-abi.h"
+#include "rust-ast-visitor.h"
namespace Rust {
void
FeatureGate::check (AST::Crate &crate)
+{
+ visit (crate);
+}
+
+void
+FeatureGate::visit (AST::Crate &crate)
{
valid_features.clear ();
}
}
- auto &items = crate.items;
- for (auto it = items.begin (); it != items.end (); it++)
- {
- auto &item = *it;
- item->accept_vis (*this);
- }
+ AST::DefaultASTVisitor::visit (crate);
}
void
gate (Feature::Name::INTRINSICS, block.get_locus (),
"intrinsics are subject to change");
}
- for (const auto &item : block.get_extern_items ())
- {
- item->accept_vis (*this);
- }
+ AST::DefaultASTVisitor::visit (block);
}
void
check_rustc_attri (rules_def.get_outer_attrs ());
}
-void
-FeatureGate::visit (AST::InherentImpl &impl)
-{
- for (const auto &item : impl.get_impl_items ())
- {
- item->accept_vis (*this);
- }
-}
-
-void
-FeatureGate::visit (AST::TraitImpl &impl)
-{
- for (const auto &item : impl.get_impl_items ())
- {
- item->accept_vis (*this);
- }
-}
-
void
FeatureGate::visit (AST::Function &function)
{
namespace Rust {
-class FeatureGate : public AST::ASTVisitor
+class FeatureGate : public AST::DefaultASTVisitor
{
public:
FeatureGate () {}
+ using AST::DefaultASTVisitor::visit;
+
void check (AST::Crate &crate);
+ void visit (AST::Crate &crate) override;
void visit (AST::Token &tok) override {}
void visit (AST::DelimTokenTree &delim_tok_tree) override {}
void visit (AST::TraitItemConst &item) override {}
void visit (AST::TraitItemType &item) override {}
void visit (AST::Trait &trait) override {}
- void visit (AST::InherentImpl &impl) override;
- void visit (AST::TraitImpl &impl) override;
void visit (AST::ExternalTypeItem &item) override;
void visit (AST::ExternalStaticItem &item) override {}
void visit (AST::ExternalFunctionItem &item) override {}