aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler.rs')
-rw-r--r--src/compiler.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler.rs b/src/compiler.rs
index 56a1d44..f4c369f 100644
--- a/src/compiler.rs
+++ b/src/compiler.rs
@@ -1743,9 +1743,6 @@ impl<'a> Compiler<'a> {
"Expect newline or EOF after expression.");
}
}
- let tmp = self.add_constant(Value::Unknown);
- add_op(self, &mut block, Op::Constant(tmp));
- add_op(self, &mut block, Op::Return);
block.ty = Type::Function(Vec::new(), Box::new(Type::Void));
if self.names.len() != 0 {
@@ -1766,6 +1763,10 @@ impl<'a> Compiler<'a> {
add_op(self, &mut block, Op::Constant(constant));
add_op(self, &mut block, Op::Call(0));
+ let tmp = self.add_constant(Value::Unknown);
+ add_op(self, &mut block, Op::Constant(tmp));
+ add_op(self, &mut block, Op::Return);
+
for var in self.current_context_mut().pop().unwrap().stack.iter().skip(1) {
if !(var.read || var.upvalue) {
let e = ErrorKind::SyntaxError(var.line, Token::Identifier(var.name.clone()));