From 0fd774deba11e3cd5a70840d1ea8efb0bf8ff17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Fri, 15 Jan 2021 16:01:22 +0100 Subject: typecheck: infere type from rhs in assignments --- src/compiler.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/compiler.rs') diff --git a/src/compiler.rs b/src/compiler.rs index 3a4181b..df816c9 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -504,8 +504,9 @@ impl Compiler { } fn definition_statement(&mut self, name: &str, typ: Type, block: &mut Block) { - let slot = self.define_variable(name, typ, block); + let slot = self.define_variable(name, typ.clone(), block); self.expression(block); + block.add(Op::Define(typ), self.line()); if let Ok(slot) = slot { self.stack_mut()[slot].active = true; -- cgit v1.2.1