aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-01-15 14:46:44 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-01-15 16:58:08 +0100
commit7a8af511ce36e102275242b9d7ff70bb0c5c8955 (patch)
treedce4ef323071da5c1f27323ce0272b12982a66e1 /src
parent08ac58c0de3c1caf9a398027fb8fcda343a447cc (diff)
downloadsylt-7a8af511ce36e102275242b9d7ff70bb0c5c8955.tar.gz
fix tests
Diffstat (limited to 'src')
-rw-r--r--src/typer.rs11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/typer.rs b/src/typer.rs
index 7040bb2..59eefe8 100644
--- a/src/typer.rs
+++ b/src/typer.rs
@@ -67,13 +67,13 @@ impl VM {
fn pop_twice(&mut self) -> (Type, Type) {
let len = self.stack.len();
- let res = (self.stack[len-2].clone(), self.stack[len-1].clone());
+ let res = (self.stack[len - 2].clone(), self.stack[len - 1].clone());
self.stack.truncate(len - 2);
res
}
fn peek_up(&self, amount: usize) -> Type {
- self.stack[self.stack.len() - amount].clone()
+ self.stack[self.stack.len() - 1 - amount].clone()
}
fn frame(&self) -> &Frame {
@@ -300,13 +300,6 @@ impl VM {
return Ok(());
}
- match self.frame().block.ops[self.frame().ip - 2] {
- Op::Return => {
- continue;
- }
- _ => {}
- }
-
let a = self.stack.pop().unwrap_or(Type::NoType);
if a != return_type {
error!(self, ErrorKind::TypeError(op, vec![a, return_type.clone()]), "Not matching return type.");