mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 20:01:22 -05:00
gccrs: mappings: Add MacroInvocation -> MacroRulesDef mappings
gcc/rust/ChangeLog: * util/rust-hir-map.h: Add new mappings. * util/rust-hir-map.cc (Mappings::insert_macro_invocation): Add insertion function into mappings. (Mappings::lookup_macro_invocation): Add lookup function for mappings.
This commit is contained in:
@@ -866,6 +866,28 @@ Mappings::lookup_macro_def (NodeId id, AST::MacroRulesDefinition **def)
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
Mappings::insert_macro_invocation (AST::MacroInvocation &invoc,
|
||||
AST::MacroRulesDefinition *def)
|
||||
{
|
||||
auto it = macroInvocations.find (invoc.get_macro_node_id ());
|
||||
rust_assert (it == macroInvocations.end ());
|
||||
|
||||
macroInvocations[invoc.get_macro_node_id ()] = def;
|
||||
}
|
||||
|
||||
bool
|
||||
Mappings::lookup_macro_invocation (AST::MacroInvocation &invoc,
|
||||
AST::MacroRulesDefinition **def)
|
||||
{
|
||||
auto it = macroInvocations.find (invoc.get_macro_node_id ());
|
||||
if (it == macroInvocations.end ())
|
||||
return false;
|
||||
|
||||
*def = it->second;
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
Mappings::insert_visibility (NodeId id, Privacy::ModuleVisibility visibility)
|
||||
{
|
||||
|
||||
@@ -269,6 +269,11 @@ public:
|
||||
|
||||
bool lookup_macro_def (NodeId id, AST::MacroRulesDefinition **def);
|
||||
|
||||
void insert_macro_invocation (AST::MacroInvocation &invoc,
|
||||
AST::MacroRulesDefinition *def);
|
||||
bool lookup_macro_invocation (AST::MacroInvocation &invoc,
|
||||
AST::MacroRulesDefinition **def);
|
||||
|
||||
void insert_visibility (NodeId id, Privacy::ModuleVisibility visibility);
|
||||
bool lookup_visibility (NodeId id, Privacy::ModuleVisibility &def);
|
||||
|
||||
@@ -334,6 +339,7 @@ private:
|
||||
|
||||
// macros
|
||||
std::map<NodeId, AST::MacroRulesDefinition *> macroMappings;
|
||||
std::map<NodeId, AST::MacroRulesDefinition *> macroInvocations;
|
||||
|
||||
// crate names
|
||||
std::map<CrateNum, std::string> crate_names;
|
||||
|
||||
Reference in New Issue
Block a user