diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-09-08 11:12:30 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-09-08 11:12:30 +0200 |
| commit | 8f9ba0c67479d8926edead8aa828458c5b3bc1be (patch) | |
| tree | 5c9831a9fcb4fa2828c4ec598f832152702f13fe /include | |
| parent | 72f0f9b9629013e83fc4346a35113e9eecae45b5 (diff) | |
| download | elna-8f9ba0c67479d8926edead8aa828458c5b3bc1be.tar.gz | |
Fix ICE when variable name is resolved as type
Diffstat (limited to 'include')
| -rw-r--r-- | include/elna/boot/name_analysis.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/elna/boot/name_analysis.h b/include/elna/boot/name_analysis.h index cf35ab6..4a22df7 100644 --- a/include/elna/boot/name_analysis.h +++ b/include/elna/boot/name_analysis.h @@ -43,6 +43,7 @@ namespace elna::boot undeclared_type, undeclared_trait, undeclared_symbol, + not_a_type, local_export }; struct redefinition @@ -180,6 +181,11 @@ namespace elna::boot procedure_type_expression& expression); ordered_map<type> build_composite_type(const std::vector<field_declaration>& fields, ordered_map<field_origin>& field_names, const type& aggregate); + /* + * Resolves a type expression, reporting names that denote something + * other than a type. + */ + type resolve_type(type_expression& expression); type lookup_primitive_type(const std::string& name); std::filesystem::path redefinition_file(const std::shared_ptr<info>& original) const; std::shared_ptr<variable_info> register_variable(const std::string& name, |
