From 056f955fe2cda69bfe6cf0562af15b1b02cd1bc0 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Thu, 23 Apr 2026 19:23:47 +0200 Subject: [PATCH] Working struct init --- semantic/src/scope.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/semantic/src/scope.rs b/semantic/src/scope.rs index a5d7ea5..a80a0de 100644 --- a/semantic/src/scope.rs +++ b/semantic/src/scope.rs @@ -176,6 +176,19 @@ impl LocalScope { } _ => unimplemented!(), }, + Postfix::StructCall(fields) => match &*current_type { + TypeRef::Struct(s) => { + let mut old_fields = fields.clone(); + + fields.clear(); + + for (name, mut expr) in old_fields.drain() { + self.get_type_from_expr(&mut expr); + fields.insert(s.fields.get(&name).unwrap().name.clone(), expr); + } + } + _ => unimplemented!(), + }, Postfix::Binary(op, right) => match op { parser::ast::BinaryOp::Equal | parser::ast::BinaryOp::NotEqual