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:
Arthur Cohen
2022-10-11 11:38:55 +02:00
parent 570415e75c
commit a08f265625
2 changed files with 28 additions and 0 deletions

View File

@@ -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)
{

View File

@@ -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;