aboutsummaryrefslogtreecommitdiff
path: root/boot/name_analysis.cc
diff options
context:
space:
mode:
Diffstat (limited to 'boot/name_analysis.cc')
-rw-r--r--boot/name_analysis.cc17
1 files changed, 2 insertions, 15 deletions
diff --git a/boot/name_analysis.cc b/boot/name_analysis.cc
index ff5f6bc..5ad2a75 100644
--- a/boot/name_analysis.cc
+++ b/boot/name_analysis.cc
@@ -918,21 +918,8 @@ namespace elna::boot
void resolving_visitor::visit(record_constructor_expression *expression)
{
- if (const auto type_symbol = this->bag.lookup(expression->type_name.name()))
- {
- if (const auto type_info = type_symbol->is_type())
- {
- expression->type_decoration = expression->arguments.empty()
- ? type_info->symbol
- : type(std::make_shared<instantiated_type>(type_info->symbol,
- resolve_arguments(expression->arguments)));
- }
- }
- else
- {
- add_error<symbol_declaration_error>(expression->type_name.position(),
- expression->type_name.name(), symbol_declaration_error::kind::undeclared_type);
- }
+ expression->type_decoration = resolve_type(expression->record_type());
+
for (const field_initializer& initializer : expression->field_initializers)
{
initializer.value().accept(this);