aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-06-05 15:21:15 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2023-06-08 14:32:35 +0200
commit9829370cfbd9657ff7963e8a5d4cf0f63178fda8 (patch)
tree3ec504ab89297471f1ac8ca57e993b5fe089bf8a
parent855a62d13054bd3183cebce05f5ca9ec1ee4b401 (diff)
downloadgcc-9829370cfbd9657ff7963e8a5d4cf0f63178fda8.zip
gcc-9829370cfbd9657ff7963e8a5d4cf0f63178fda8.tar.gz
gcc-9829370cfbd9657ff7963e8a5d4cf0f63178fda8.tar.bz2
expand: Remove proc macro fragment from expander
Procedural macros are no longer expanded on post order but rather expanded from their parent. Hence they are no longer stored in the expander which means this attribute can be removed. This commit also remove the old expansion mechanism. gcc/rust/ChangeLog: * expand/rust-expand-visitor.h: Remove fragment collection fro procedural macros. * expand/rust-macro-expand.h (struct MacroExpander): Remove procedural macro fragment from expander. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
-rw-r--r--gcc/rust/expand/rust-expand-visitor.h15
-rw-r--r--gcc/rust/expand/rust-macro-expand.h18
2 files changed, 0 insertions, 33 deletions
diff --git a/gcc/rust/expand/rust-expand-visitor.h b/gcc/rust/expand/rust-expand-visitor.h
index d86f0d0..d1bdd8a 100644
--- a/gcc/rust/expand/rust-expand-visitor.h
+++ b/gcc/rust/expand/rust-expand-visitor.h
@@ -127,8 +127,6 @@ public:
value->accept_vis (*this);
auto final_fragment = expander.take_expanded_fragment ();
- auto proc_macro_fragment
- = expander.take_expanded_proc_macro_fragment ();
// FIXME: Is that correct? It seems *extremely* dodgy
if (final_fragment.should_expand ())
@@ -144,19 +142,6 @@ public:
}
}
}
- else if (proc_macro_fragment.should_expand ())
- {
- it = values.erase (it);
- for (auto &node : proc_macro_fragment.get_nodes ())
- {
- auto new_node = extractor (node);
- if (new_node != nullptr)
- {
- it = values.insert (it, std::move (new_node));
- it++;
- }
- }
- }
else
{
++it;
diff --git a/gcc/rust/expand/rust-macro-expand.h b/gcc/rust/expand/rust-macro-expand.h
index 03ed74e..524e9b6 100644
--- a/gcc/rust/expand/rust-macro-expand.h
+++ b/gcc/rust/expand/rust-macro-expand.h
@@ -236,7 +236,6 @@ struct MacroExpander
: cfg (cfg), crate (crate), session (session),
sub_stack (SubstitutionScope ()),
expanded_fragment (AST::Fragment::create_error ()),
- expanded_proc_macro_fragment (AST::Fragment::create_error ()),
has_changed_flag (false), resolver (Resolver::Resolver::get ()),
mappings (Analysis::Mappings::get ())
{}
@@ -338,22 +337,6 @@ struct MacroExpander
return fragment;
}
- void set_expanded_proc_macro_fragment (AST::Fragment &&fragment)
- {
- if (!fragment.is_error ())
- has_changed_flag = true;
-
- expanded_proc_macro_fragment = std::move (fragment);
- }
-
- AST::Fragment take_expanded_proc_macro_fragment ()
- {
- auto fragment = std::move (expanded_proc_macro_fragment);
- expanded_proc_macro_fragment = AST::Fragment::create_error ();
-
- return fragment;
- }
-
void import_proc_macros (std::string extern_crate);
template <typename T>
@@ -479,7 +462,6 @@ private:
SubstitutionScope sub_stack;
std::vector<ContextType> context;
AST::Fragment expanded_fragment;
- AST::Fragment expanded_proc_macro_fragment;
bool has_changed_flag;
AST::MacroRulesDefinition *last_def;