public inbox for gcc-cvs@sourceware.org help / color / mirror / Atom feed
From: Arthur Cohen <cohenarthur@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-7986] gccrs: Move proc macro definition to mappings Date: Tue, 16 Jan 2024 18:11:11 +0000 (GMT) [thread overview] Message-ID: <20240116181111.126F7385800C@sourceware.org> (raw) https://gcc.gnu.org/g:86a3d1582f98dec4f663b1170e2f63bd7c3d2b85 commit r14-7986-g86a3d1582f98dec4f663b1170e2f63bd7c3d2b85 Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> Date: Tue Aug 1 17:42:45 2023 +0200 gccrs: Move proc macro definition to mappings This commit moves the procedural macros loaded definition from outside the AST to the mappings. This means most getters/setters around the mappings had to be changed. This commit also introduces the top level visit of those mappings instead of visiting the Crate ast members. gcc/rust/ChangeLog: * ast/rust-ast.h (class BangProcMacro): Move class from here to rust-proc-macro.h. Also remove related functions. (class AttributeProcMacro): Likewise. (class CustomDeriveProcMacro): Likewise. (struct Crate): Remove proc macro vector members. * expand/rust-macro-expand.h (struct MacroExpander): Change the type to the newly created classes. * expand/rust-proc-macro.cc (BangProcMacro::BangProcMacro): Add constructor implementation. (AttributeProcMacro::AttributeProcMacro): Likewise. (CustomDeriveProcMacro::CustomDeriveProcMacro): Likewise. * expand/rust-proc-macro.h (class BangProcMacro): Move class to here. (class AttributeProcMacro): Likewise. (class CustomDeriveProcMacro): Likewise. * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go): Change top level visitor to check mappings instead * rust-session-manager.cc (Session::load_extern_crate): Add back macro collection to mappings. * util/rust-hir-map.cc (Mappings::insert_derive_proc_macros): Update getter signature with new types. (Mappings::insert_bang_proc_macros): Likewise. (Mappings::insert_attribute_proc_macros): Likewise. (Mappings::lookup_derive_proc_macros): Likewise. (Mappings::lookup_bang_proc_macros): Likewise. (Mappings::lookup_attribute_proc_macros): Likewise. (Mappings::insert_derive_proc_macro_def): Likewise. (Mappings::insert_bang_proc_macro_def): Likewise. (Mappings::insert_attribute_proc_macro_def): Likewise. (Mappings::lookup_derive_proc_macro_def): Likewise. (Mappings::lookup_bang_proc_macro_def): Likewise. (Mappings::lookup_attribute_proc_macro_def): Likewise. (Mappings::insert_derive_proc_macro_invocation): Likewise. (Mappings::lookup_derive_proc_macro_invocation): Likewise. (Mappings::insert_bang_proc_macro_invocation): Likewise. (Mappings::lookup_bang_proc_macro_invocation): Likewise. (Mappings::insert_attribute_proc_macro_invocation): Likewise. (Mappings::lookup_attribute_proc_macro_invocation): Likewise. * util/rust-hir-map.h: Update function prototypes as well as map types. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> Diff: --- gcc/rust/ast/rust-ast.h | 94 ---------------------- gcc/rust/expand/rust-macro-expand.h | 13 +-- gcc/rust/expand/rust-proc-macro.cc | 20 +++++ gcc/rust/expand/rust-proc-macro.h | 57 +++++++++++++ .../resolve/rust-toplevel-name-resolver-2.0.cc | 17 +++- gcc/rust/rust-session-manager.cc | 14 +++- gcc/rust/util/rust-hir-map.cc | 48 +++++------ gcc/rust/util/rust-hir-map.h | 55 ++++++------- 8 files changed, 159 insertions(+), 159 deletions(-) diff --git a/gcc/rust/ast/rust-ast.h b/gcc/rust/ast/rust-ast.h index 7b2561ee31c..136da86525d 100644 --- a/gcc/rust/ast/rust-ast.h +++ b/gcc/rust/ast/rust-ast.h @@ -1950,71 +1950,6 @@ public: } }; -class BangProcMacro -{ -private: - std::string name; - NodeId node_id; - ProcMacro::BangMacro macro; - -public: - BangProcMacro (ProcMacro::Bang macro) - : name (macro.name), - node_id (Analysis::Mappings::get ()->get_next_node_id ()), - macro (macro.macro) - {} - - const std::string &get_name () const { return name; } - - NodeId get_node_id () const { return node_id; } - - ProcMacro::BangMacro get_handle () const { return macro; } -}; - -class AttributeProcMacro -{ -private: - std::string name; - NodeId node_id; - ProcMacro::AttributeMacro macro; - -public: - AttributeProcMacro (ProcMacro::Attribute macro) - : name (macro.name), - node_id (Analysis::Mappings::get ()->get_next_node_id ()), - macro (macro.macro) - {} - - const std::string &get_name () const { return name; } - - NodeId get_node_id () const { return node_id; } - - ProcMacro::AttributeMacro get_handle () const { return macro; } -}; - -class CustomDeriveProcMacro -{ -private: - std::string trait_name; - std::vector<std::string> attributes; - NodeId node_id; - ProcMacro::CustomDeriveMacro macro; - -public: - CustomDeriveProcMacro (ProcMacro::CustomDerive macro) - : trait_name (macro.trait_name), - attributes (macro.attributes, macro.attributes + macro.attr_size), - node_id (Analysis::Mappings::get ()->get_next_node_id ()), - macro (macro.macro) - {} - - const std::string &get_trait_name () const { return trait_name; } - - NodeId get_node_id () const { return node_id; } - - ProcMacro::CustomDeriveMacro get_handle () const { return macro; } -}; - // A crate AST object - holds all the data for a single compilation unit struct Crate { @@ -2026,10 +1961,6 @@ struct Crate NodeId node_id; - std::vector<AttributeProcMacro> attribute_macros; - std::vector<CustomDeriveProcMacro> derive_macros; - std::vector<BangProcMacro> bang_macros; - public: // Constructor Crate (std::vector<std::unique_ptr<Item>> items, @@ -2083,21 +2014,6 @@ public: NodeId get_node_id () const { return node_id; } const std::vector<Attribute> &get_inner_attrs () const { return inner_attrs; } - const std::vector<AttributeProcMacro> &get_attribute_macros () const - { - return attribute_macros; - } - - const std::vector<CustomDeriveProcMacro> &get_derive_macros () const - { - return derive_macros; - } - - const std::vector<BangProcMacro> &get_bang_macros () const - { - return bang_macros; - } - std::vector<std::unique_ptr<AST::Item>> take_items () { return std::move (items); @@ -2107,16 +2023,6 @@ public: { items = std::move (new_items); } - - void add_bang_macro (ProcMacro::Bang macro) { bang_macros.push_back (macro); } - void add_attribute_macro (ProcMacro::Attribute macro) - { - attribute_macros.push_back (macro); - } - void add_derive_macro (ProcMacro::CustomDerive macro) - { - derive_macros.push_back (macro); - } }; // Base path expression AST node - abstract diff --git a/gcc/rust/expand/rust-macro-expand.h b/gcc/rust/expand/rust-macro-expand.h index 04660469a7d..92103a705c8 100644 --- a/gcc/rust/expand/rust-macro-expand.h +++ b/gcc/rust/expand/rust-macro-expand.h @@ -410,7 +410,7 @@ struct MacroExpander template <typename T> AST::Fragment expand_derive_proc_macro (T &item, AST::SimplePath &path) { - ProcMacro::CustomDerive macro; + CustomDeriveProcMacro macro; if (!mappings->lookup_derive_proc_macro_invocation (path, macro)) { rust_error_at (path.get_locus (), "Macro not found"); @@ -424,14 +424,14 @@ struct MacroExpander auto c = collector.collect_tokens (); std::vector<const_TokenPtr> vec (c.cbegin (), c.cend ()); - return parse_proc_macro_output (macro.macro (convert (vec))); + return parse_proc_macro_output (macro.get_handle () (convert (vec))); } template <typename T> AST::Fragment expand_bang_proc_macro (T &item, AST::MacroInvocation &invocation) { - ProcMacro::Bang macro; + BangProcMacro macro; if (!mappings->lookup_bang_proc_macro_invocation (invocation, macro)) { rust_error_at (invocation.get_locus (), "Macro not found"); @@ -445,13 +445,13 @@ struct MacroExpander auto c = collector.collect_tokens (); std::vector<const_TokenPtr> vec (c.cbegin (), c.cend ()); - return parse_proc_macro_output (macro.macro (convert (vec))); + return parse_proc_macro_output (macro.get_handle () (convert (vec))); } template <typename T> AST::Fragment expand_attribute_proc_macro (T &item, AST::SimplePath &path) { - ProcMacro::Attribute macro; + AttributeProcMacro macro; if (!mappings->lookup_attribute_proc_macro_invocation (path, macro)) { rust_error_at (path.get_locus (), "Macro not found"); @@ -467,7 +467,8 @@ struct MacroExpander // FIXME: Handle attributes return parse_proc_macro_output ( - macro.macro (ProcMacro::TokenStream::make_tokenstream (), convert (vec))); + macro.get_handle () (ProcMacro::TokenStream::make_tokenstream (), + convert (vec))); } /** diff --git a/gcc/rust/expand/rust-proc-macro.cc b/gcc/rust/expand/rust-proc-macro.cc index 541a0100ea8..f0f6d65f8cf 100644 --- a/gcc/rust/expand/rust-proc-macro.cc +++ b/gcc/rust/expand/rust-proc-macro.cc @@ -18,12 +18,32 @@ #include "rust-proc-macro.h" #include "rust-lex.h" #include "rust-token-converter.h" +#include "rust-attributes.h" #ifndef _WIN32 #include <dlfcn.h> #endif namespace Rust { +BangProcMacro::BangProcMacro (ProcMacro::Bang macro) + : name (macro.name), + node_id (Analysis::Mappings::get ()->get_next_node_id ()), + macro (macro.macro) +{} + +AttributeProcMacro::AttributeProcMacro (ProcMacro::Attribute macro) + : name (macro.name), + node_id (Analysis::Mappings::get ()->get_next_node_id ()), + macro (macro.macro) +{} + +CustomDeriveProcMacro::CustomDeriveProcMacro (ProcMacro::CustomDerive macro) + : trait_name (macro.trait_name), + attributes (macro.attributes, macro.attributes + macro.attr_size), + node_id (Analysis::Mappings::get ()->get_next_node_id ()), + macro (macro.macro) +{} + const std::string PROC_MACRO_DECL_PREFIX = "__gccrs_proc_macro_decls_"; namespace { diff --git a/gcc/rust/expand/rust-proc-macro.h b/gcc/rust/expand/rust-proc-macro.h index 08d80ee35d9..a7fb8c893e1 100644 --- a/gcc/rust/expand/rust-proc-macro.h +++ b/gcc/rust/expand/rust-proc-macro.h @@ -18,8 +18,65 @@ #define RUST_PROC_MACRO_H #include "libproc_macro_internal/proc_macro.h" +#include "rust-mapping-common.h" namespace Rust { + +class BangProcMacro +{ +private: + std::string name; + NodeId node_id; + ProcMacro::BangMacro macro; + +public: + BangProcMacro (ProcMacro::Bang macro); + BangProcMacro () = default; + + const std::string &get_name () const { return name; } + + NodeId get_node_id () const { return node_id; } + + ProcMacro::BangMacro get_handle () const { return macro; } +}; + +class AttributeProcMacro +{ +private: + std::string name; + NodeId node_id; + ProcMacro::AttributeMacro macro; + +public: + AttributeProcMacro (ProcMacro::Attribute macro); + AttributeProcMacro () = default; + + const std::string &get_name () const { return name; } + + NodeId get_node_id () const { return node_id; } + + ProcMacro::AttributeMacro get_handle () const { return macro; } +}; + +class CustomDeriveProcMacro +{ +private: + std::string trait_name; + std::vector<std::string> attributes; + NodeId node_id; + ProcMacro::CustomDeriveMacro macro; + +public: + CustomDeriveProcMacro (ProcMacro::CustomDerive macro); + CustomDeriveProcMacro () = default; + + const std::string &get_trait_name () const { return trait_name; } + + NodeId get_node_id () const { return node_id; } + + ProcMacro::CustomDeriveMacro get_handle () const { return macro; } +}; + /** * Load a procedural macro library and collect its entrypoints. * diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc index ed039de2a67..22467882aca 100644 --- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc @@ -56,7 +56,18 @@ TopLevel::go (AST::Crate &crate) for (auto &item : crate.items) item->accept_vis (*this); - for (auto &derive : crate.get_derive_macros ()) + std::vector<CustomDeriveProcMacro> derive_macros; + std::vector<AttributeProcMacro> attribute_macros; + std::vector<BangProcMacro> bang_macros; + + Analysis::Mappings::get ()->lookup_attribute_proc_macros ( + crate.get_node_id (), attribute_macros); + Analysis::Mappings::get ()->lookup_bang_proc_macros (crate.get_node_id (), + bang_macros); + Analysis::Mappings::get ()->lookup_derive_proc_macros (crate.get_node_id (), + derive_macros); + + for (auto &derive : derive_macros) { auto res = ctx.macros.insert_at_root (derive.get_trait_name (), derive.get_node_id ()); @@ -67,7 +78,7 @@ TopLevel::go (AST::Crate &crate) derive.get_trait_name ().c_str ()); } } - for (auto &attribute : crate.get_attribute_macros ()) + for (auto &attribute : attribute_macros) { auto res = ctx.macros.insert_at_root (attribute.get_name (), attribute.get_node_id ()); @@ -78,7 +89,7 @@ TopLevel::go (AST::Crate &crate) attribute.get_name ().c_str ()); } } - for (auto &bang : crate.get_bang_macros ()) + for (auto &bang : bang_macros) { auto res = ctx.macros.insert_at_root (bang.get_name (), bang.get_node_id ()); diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc index 6f2657c68ac..d0d92a861d9 100644 --- a/gcc/rust/rust-session-manager.cc +++ b/gcc/rust/rust-session-manager.cc @@ -1056,24 +1056,32 @@ Session::load_extern_crate (const std::string &crate_name, location_t locus) AST::Crate &parsed_crate = mappings->insert_ast_crate (std::move (metadata_crate), crate_num); + std::vector<AttributeProcMacro> attribute_macros; + std::vector<CustomDeriveProcMacro> derive_macros; + std::vector<BangProcMacro> bang_macros; + for (auto ¯o : extern_crate.get_proc_macros ()) { switch (macro.tag) { case ProcMacro::CUSTOM_DERIVE: - parsed_crate.add_derive_macro (macro.payload.custom_derive); + derive_macros.push_back (macro.payload.custom_derive); break; case ProcMacro::ATTR: - parsed_crate.add_attribute_macro (macro.payload.attribute); + attribute_macros.push_back (macro.payload.attribute); break; case ProcMacro::BANG: - parsed_crate.add_bang_macro (macro.payload.bang); + bang_macros.push_back (macro.payload.bang); break; default: gcc_unreachable (); } } + mappings->insert_attribute_proc_macros (crate_num, attribute_macros); + mappings->insert_bang_proc_macros (crate_num, bang_macros); + mappings->insert_derive_proc_macros (crate_num, derive_macros); + // name resolve it Resolver::NameResolution::Resolve (parsed_crate); diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index 1f126c15304..eb6c57649b9 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -943,8 +943,8 @@ Mappings::get_exported_macros () } void -Mappings::insert_derive_proc_macros ( - CrateNum num, std::vector<ProcMacro::CustomDerive> macros) +Mappings::insert_derive_proc_macros (CrateNum num, + std::vector<CustomDeriveProcMacro> macros) { auto it = procmacrosDeriveMappings.find (num); rust_assert (it == procmacrosDeriveMappings.end ()); @@ -954,7 +954,7 @@ Mappings::insert_derive_proc_macros ( void Mappings::insert_bang_proc_macros (CrateNum num, - std::vector<ProcMacro::Bang> macros) + std::vector<BangProcMacro> macros) { auto it = procmacrosBangMappings.find (num); rust_assert (it == procmacrosBangMappings.end ()); @@ -963,8 +963,8 @@ Mappings::insert_bang_proc_macros (CrateNum num, } void -Mappings::insert_attribute_proc_macros ( - CrateNum num, std::vector<ProcMacro::Attribute> macros) +Mappings::insert_attribute_proc_macros (CrateNum num, + std::vector<AttributeProcMacro> macros) { auto it = procmacrosAttributeMappings.find (num); rust_assert (it == procmacrosAttributeMappings.end ()); @@ -973,8 +973,8 @@ Mappings::insert_attribute_proc_macros ( } bool -Mappings::lookup_derive_proc_macros ( - CrateNum num, std::vector<ProcMacro::CustomDerive> ¯os) +Mappings::lookup_derive_proc_macros (CrateNum num, + std::vector<CustomDeriveProcMacro> ¯os) { auto it = procmacrosDeriveMappings.find (num); if (it == procmacrosDeriveMappings.end ()) @@ -985,7 +985,7 @@ Mappings::lookup_derive_proc_macros ( } bool Mappings::lookup_bang_proc_macros (CrateNum num, - std::vector<ProcMacro::Bang> ¯os) + std::vector<BangProcMacro> ¯os) { auto it = procmacrosBangMappings.find (num); if (it == procmacrosBangMappings.end ()) @@ -995,8 +995,8 @@ Mappings::lookup_bang_proc_macros (CrateNum num, return true; } bool -Mappings::lookup_attribute_proc_macros ( - CrateNum num, std::vector<ProcMacro::Attribute> ¯os) +Mappings::lookup_attribute_proc_macros (CrateNum num, + std::vector<AttributeProcMacro> ¯os) { auto it = procmacrosAttributeMappings.find (num); if (it == procmacrosAttributeMappings.end ()) @@ -1007,8 +1007,7 @@ Mappings::lookup_attribute_proc_macros ( } void -Mappings::insert_derive_proc_macro_def (NodeId id, - ProcMacro::CustomDerive macro) +Mappings::insert_derive_proc_macro_def (NodeId id, CustomDeriveProcMacro macro) { auto it = procmacroDeriveMappings.find (id); rust_assert (it == procmacroDeriveMappings.end ()); @@ -1017,7 +1016,7 @@ Mappings::insert_derive_proc_macro_def (NodeId id, } void -Mappings::insert_bang_proc_macro_def (NodeId id, ProcMacro::Bang macro) +Mappings::insert_bang_proc_macro_def (NodeId id, BangProcMacro macro) { auto it = procmacroBangMappings.find (id); rust_assert (it == procmacroBangMappings.end ()); @@ -1026,8 +1025,7 @@ Mappings::insert_bang_proc_macro_def (NodeId id, ProcMacro::Bang macro) } void -Mappings::insert_attribute_proc_macro_def (NodeId id, - ProcMacro::Attribute macro) +Mappings::insert_attribute_proc_macro_def (NodeId id, AttributeProcMacro macro) { auto it = procmacroAttributeMappings.find (id); rust_assert (it == procmacroAttributeMappings.end ()); @@ -1036,8 +1034,7 @@ Mappings::insert_attribute_proc_macro_def (NodeId id, } bool -Mappings::lookup_derive_proc_macro_def (NodeId id, - ProcMacro::CustomDerive ¯o) +Mappings::lookup_derive_proc_macro_def (NodeId id, CustomDeriveProcMacro ¯o) { auto it = procmacroDeriveMappings.find (id); if (it == procmacroDeriveMappings.end ()) @@ -1048,7 +1045,7 @@ Mappings::lookup_derive_proc_macro_def (NodeId id, } bool -Mappings::lookup_bang_proc_macro_def (NodeId id, ProcMacro::Bang ¯o) +Mappings::lookup_bang_proc_macro_def (NodeId id, BangProcMacro ¯o) { auto it = procmacroBangMappings.find (id); if (it == procmacroBangMappings.end ()) @@ -1059,8 +1056,7 @@ Mappings::lookup_bang_proc_macro_def (NodeId id, ProcMacro::Bang ¯o) } bool -Mappings::lookup_attribute_proc_macro_def (NodeId id, - ProcMacro::Attribute ¯o) +Mappings::lookup_attribute_proc_macro_def (NodeId id, AttributeProcMacro ¯o) { auto it = procmacroAttributeMappings.find (id); if (it == procmacroAttributeMappings.end ()) @@ -1072,7 +1068,7 @@ Mappings::lookup_attribute_proc_macro_def (NodeId id, void Mappings::insert_derive_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::CustomDerive def) + CustomDeriveProcMacro def) { auto it = procmacroDeriveInvocations.find (invoc.get_node_id ()); rust_assert (it == procmacroDeriveInvocations.end ()); @@ -1082,7 +1078,7 @@ Mappings::insert_derive_proc_macro_invocation (AST::SimplePath &invoc, bool Mappings::lookup_derive_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::CustomDerive &def) + CustomDeriveProcMacro &def) { auto it = procmacroDeriveInvocations.find (invoc.get_node_id ()); if (it == procmacroDeriveInvocations.end ()) @@ -1094,7 +1090,7 @@ Mappings::lookup_derive_proc_macro_invocation (AST::SimplePath &invoc, void Mappings::insert_bang_proc_macro_invocation (AST::MacroInvocation &invoc, - ProcMacro::Bang def) + BangProcMacro def) { auto it = procmacroBangInvocations.find (invoc.get_macro_node_id ()); rust_assert (it == procmacroBangInvocations.end ()); @@ -1104,7 +1100,7 @@ Mappings::insert_bang_proc_macro_invocation (AST::MacroInvocation &invoc, bool Mappings::lookup_bang_proc_macro_invocation (AST::MacroInvocation &invoc, - ProcMacro::Bang &def) + BangProcMacro &def) { auto it = procmacroBangInvocations.find (invoc.get_macro_node_id ()); if (it == procmacroBangInvocations.end ()) @@ -1116,7 +1112,7 @@ Mappings::lookup_bang_proc_macro_invocation (AST::MacroInvocation &invoc, void Mappings::insert_attribute_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::Attribute def) + AttributeProcMacro def) { auto it = procmacroAttributeInvocations.find (invoc.get_node_id ()); rust_assert (it == procmacroAttributeInvocations.end ()); @@ -1126,7 +1122,7 @@ Mappings::insert_attribute_proc_macro_invocation (AST::SimplePath &invoc, bool Mappings::lookup_attribute_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::Attribute &def) + AttributeProcMacro &def) { auto it = procmacroAttributeInvocations.find (invoc.get_node_id ()); if (it == procmacroAttributeInvocations.end ()) diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h index 31f8a1bea59..49bafb28d81 100644 --- a/gcc/rust/util/rust-hir-map.h +++ b/gcc/rust/util/rust-hir-map.h @@ -29,6 +29,7 @@ #include "rust-lang-item.h" #include "rust-privacy-common.h" #include "libproc_macro_internal/proc_macro.h" +#include "rust-proc-macro.h" namespace Rust { namespace Analysis { @@ -287,40 +288,40 @@ public: std::vector<NodeId> &get_exported_macros (); void insert_derive_proc_macros (CrateNum num, - std::vector<ProcMacro::CustomDerive> macros); + std::vector<CustomDeriveProcMacro> macros); void insert_bang_proc_macros (CrateNum num, - std::vector<ProcMacro::Bang> macros); + std::vector<BangProcMacro> macros); void insert_attribute_proc_macros (CrateNum num, - std::vector<ProcMacro::Attribute> macros); + std::vector<AttributeProcMacro> macros); bool lookup_derive_proc_macros (CrateNum num, - std::vector<ProcMacro::CustomDerive> ¯os); + std::vector<CustomDeriveProcMacro> ¯os); bool lookup_bang_proc_macros (CrateNum num, - std::vector<ProcMacro::Bang> ¯os); + std::vector<BangProcMacro> ¯os); bool lookup_attribute_proc_macros (CrateNum num, - std::vector<ProcMacro::Attribute> ¯os); + std::vector<AttributeProcMacro> ¯os); - void insert_derive_proc_macro_def (NodeId id, ProcMacro::CustomDerive macro); - void insert_bang_proc_macro_def (NodeId id, ProcMacro::Bang macro); - void insert_attribute_proc_macro_def (NodeId id, ProcMacro::Attribute macro); + void insert_derive_proc_macro_def (NodeId id, CustomDeriveProcMacro macro); + void insert_bang_proc_macro_def (NodeId id, BangProcMacro macro); + void insert_attribute_proc_macro_def (NodeId id, AttributeProcMacro macro); - bool lookup_derive_proc_macro_def (NodeId id, ProcMacro::CustomDerive ¯o); - bool lookup_bang_proc_macro_def (NodeId id, ProcMacro::Bang ¯o); - bool lookup_attribute_proc_macro_def (NodeId id, ProcMacro::Attribute ¯o); + bool lookup_derive_proc_macro_def (NodeId id, CustomDeriveProcMacro ¯o); + bool lookup_bang_proc_macro_def (NodeId id, BangProcMacro ¯o); + bool lookup_attribute_proc_macro_def (NodeId id, AttributeProcMacro ¯o); void insert_derive_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::CustomDerive def); + CustomDeriveProcMacro def); bool lookup_derive_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::CustomDerive &def); + CustomDeriveProcMacro &def); void insert_bang_proc_macro_invocation (AST::MacroInvocation &invoc, - ProcMacro::Bang def); + BangProcMacro def); bool lookup_bang_proc_macro_invocation (AST::MacroInvocation &invoc_id, - ProcMacro::Bang &def); + BangProcMacro &def); void insert_attribute_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::Attribute def); + AttributeProcMacro def); bool lookup_attribute_proc_macro_invocation (AST::SimplePath &invoc, - ProcMacro::Attribute &def); + AttributeProcMacro &def); void insert_visibility (NodeId id, Privacy::ModuleVisibility visibility); bool lookup_visibility (NodeId id, Privacy::ModuleVisibility &def); @@ -400,18 +401,18 @@ private: std::vector<NodeId> exportedMacros; // Procedural macros - std::map<CrateNum, std::vector<ProcMacro::CustomDerive>> + std::map<CrateNum, std::vector<CustomDeriveProcMacro>> procmacrosDeriveMappings; - std::map<CrateNum, std::vector<ProcMacro::Bang>> procmacrosBangMappings; - std::map<CrateNum, std::vector<ProcMacro::Attribute>> + std::map<CrateNum, std::vector<BangProcMacro>> procmacrosBangMappings; + std::map<CrateNum, std::vector<AttributeProcMacro>> procmacrosAttributeMappings; - std::map<NodeId, ProcMacro::CustomDerive> procmacroDeriveMappings; - std::map<NodeId, ProcMacro::Bang> procmacroBangMappings; - std::map<NodeId, ProcMacro::Attribute> procmacroAttributeMappings; - std::map<NodeId, ProcMacro::CustomDerive> procmacroDeriveInvocations; - std::map<NodeId, ProcMacro::Bang> procmacroBangInvocations; - std::map<NodeId, ProcMacro::Attribute> procmacroAttributeInvocations; + std::map<NodeId, CustomDeriveProcMacro> procmacroDeriveMappings; + std::map<NodeId, BangProcMacro> procmacroBangMappings; + std::map<NodeId, AttributeProcMacro> procmacroAttributeMappings; + std::map<NodeId, CustomDeriveProcMacro> procmacroDeriveInvocations; + std::map<NodeId, BangProcMacro> procmacroBangInvocations; + std::map<NodeId, AttributeProcMacro> procmacroAttributeInvocations; // crate names std::map<CrateNum, std::string> crate_names;
reply other threads:[~2024-01-16 18:11 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20240116181111.126F7385800C@sourceware.org \ --to=cohenarthur@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).