diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-01-15 16:01:22 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-01-15 16:58:08 +0100 |
| commit | 0fd774deba11e3cd5a70840d1ea8efb0bf8ff17b (patch) | |
| tree | 40ae38aa039b4e2b01692a968271ac903b55859e /src/compiler.rs | |
| parent | bbd4123387a35d8920acaf77f3a2d420f9d76860 (diff) | |
| download | sylt-0fd774deba11e3cd5a70840d1ea8efb0bf8ff17b.tar.gz | |
typecheck: infere type from rhs in assignments
Diffstat (limited to 'src/compiler.rs')
| -rw-r--r-- | src/compiler.rs | 3 |
1 files changed, 2 insertions, 1 deletions
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; |
