aboutsummaryrefslogtreecommitdiffstats
path: root/src/vm.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-01-15 16:01:22 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-01-15 16:58:08 +0100
commit0fd774deba11e3cd5a70840d1ea8efb0bf8ff17b (patch)
tree40ae38aa039b4e2b01692a968271ac903b55859e /src/vm.rs
parentbbd4123387a35d8920acaf77f3a2d420f9d76860 (diff)
downloadsylt-0fd774deba11e3cd5a70840d1ea8efb0bf8ff17b.tar.gz
typecheck: infere type from rhs in assignments
Diffstat (limited to 'src/vm.rs')
-rw-r--r--src/vm.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vm.rs b/src/vm.rs
index 3750690..0b9195d 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -69,6 +69,8 @@ pub enum Op {
ReadLocal(usize),
Assign(usize),
+ Define(Type),
+
Call(usize),
Print,
@@ -401,6 +403,8 @@ impl VM {
self.stack[slot] = self.stack.pop().unwrap();
}
+ Op::Define(_) => {}
+
Op::Call(num_args) => {
let new_base = self.stack.len() - 1 - num_args;
match &self.stack[new_base] {