global_ids(): Include module names

Ad-hoc include module names in the global_ids() table. Table values will
have the type_name field set to "module" and their key in the table is
prefixed with "module " to avoid clashes with existing global identifiers
shadowing module names (Management::Node being an existing example).

Closes #3136
This commit is contained in:
Arne Welzel 2023-07-04 16:15:51 +02:00
parent f6f9dd2620
commit 4cde1c3c3f
8 changed files with 85 additions and 12 deletions

View file

@ -42,6 +42,10 @@ extern ExprPtr add_and_assign_local(IDPtr id, ExprPtr init, ValPtr val);
extern void add_type(ID* id, TypePtr t, std::unique_ptr<std::vector<AttrPtr>> attr);
extern void add_module(const char* module_name);
const std::set<std::string>& module_names();
extern void begin_func(IDPtr id, const char* module_name, FunctionFlavor flavor, bool is_redef,
FuncTypePtr t, std::unique_ptr<std::vector<AttrPtr>> attrs = nullptr);