aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/expand/rust-cfg-strip.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/expand/rust-cfg-strip.h')
-rw-r--r--gcc/rust/expand/rust-cfg-strip.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/gcc/rust/expand/rust-cfg-strip.h b/gcc/rust/expand/rust-cfg-strip.h
index 767cf28..42cd266 100644
--- a/gcc/rust/expand/rust-cfg-strip.h
+++ b/gcc/rust/expand/rust-cfg-strip.h
@@ -23,14 +23,23 @@
#include "rust-item.h"
namespace Rust {
+
+// forward declare
+struct ExpansionCfg;
+
// Visitor used to maybe_strip attributes.
class CfgStrip : public AST::DefaultASTVisitor
{
private:
+ bool fails_cfg (const AST::AttrVec &attrs) const;
+
+ bool fails_cfg_with_expand (AST::AttrVec &attrs) const;
+
public:
using DefaultASTVisitor::visit;
- CfgStrip () {}
+ CfgStrip (const ExpansionCfg &expansion_cfg) : expansion_cfg (expansion_cfg)
+ {}
/* Run the AttrVisitor on an entire crate */
void go (AST::Crate &crate);
@@ -147,7 +156,6 @@ public:
void visit (AST::Union &union_item) override;
void visit (AST::ConstantItem &const_item) override;
void visit (AST::StaticItem &static_item) 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;
@@ -166,11 +174,11 @@ public:
void visit (AST::StructPatternFieldIdentPat &field) override;
void visit (AST::StructPatternFieldIdent &field) override;
void visit (AST::StructPattern &pattern) override;
- void visit (AST::TupleStructItemsNoRange &tuple_items) override;
- void visit (AST::TupleStructItemsRange &tuple_items) override;
+ void visit (AST::TupleStructItemsNoRest &tuple_items) override;
+ void visit (AST::TupleStructItemsHasRest &tuple_items) override;
void visit (AST::TupleStructPattern &pattern) override;
- void visit (AST::TuplePatternItemsMultiple &tuple_items) override;
- void visit (AST::TuplePatternItemsRanged &tuple_items) override;
+ void visit (AST::TuplePatternItemsNoRest &tuple_items) override;
+ void visit (AST::TuplePatternItemsHasRest &tuple_items) override;
void visit (AST::GroupedPattern &pattern) override;
void visit (AST::SlicePatternItemsNoRest &items) override;
void visit (AST::SlicePatternItemsHasRest &items) override;
@@ -194,6 +202,9 @@ public:
{
DefaultASTVisitor::visit (item);
}
+
+private:
+ const ExpansionCfg &expansion_cfg;
};
} // namespace Rust