summaryrefslogtreecommitdiffstats
path: root/src/forth/compiler.rs
diff options
context:
space:
mode:
authorBrian Cully <bjc@spork.org>2025-08-25 12:25:30 -0400
committerBrian Cully <bjc@spork.org>2025-08-25 12:25:30 -0400
commit8275403e955e8998c61ecaa07d70949e3bd53a66 (patch)
tree3f0989d16931d889a4938f742f8da68d3e6e362b /src/forth/compiler.rs
parent1c81d26b706abb43ba71eb36cdb622dae03e95cd (diff)
downloadautomathon-8275403e955e8998c61ecaa07d70949e3bd53a66.tar.gz
automathon-8275403e955e8998c61ecaa07d70949e3bd53a66.zip
tail-position if no longer needs ret
Diffstat (limited to 'src/forth/compiler.rs')
-rw-r--r--src/forth/compiler.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/forth/compiler.rs b/src/forth/compiler.rs
index f593806..e8aaa7f 100644
--- a/src/forth/compiler.rs
+++ b/src/forth/compiler.rs
@@ -133,7 +133,7 @@ impl<'a> Compiler<'a> {
self.bc_mut().0.pop();
self.bc_mut().0.push(OpCode::TIf(t, f));
// technically only needed if ‘f’ is None, but whatever.
- self.bc_push(OpCode::Ret, anno);
+ //self.bc_push(OpCode::Ret, anno);
},
_ => self.bc_push(OpCode::Ret, anno),
}
@@ -352,7 +352,7 @@ mod tests {
let main = &comp.wordlist.0[0];
assert_eq!(main, vec![OpCode::Call(1)]);
let t = &comp.wordlist.0[1];
- assert_eq!(t, vec![OpCode::TIf(2, None), OpCode::Ret]);
+ assert_eq!(t, vec![OpCode::TIf(2, None)]);
let tr = &comp.wordlist.0[2];
assert_eq!(tr, vec![OpCode::Num(1), OpCode::Num(2), OpCode::Add, OpCode::Ret]);
}
@@ -365,7 +365,7 @@ mod tests {
let main = &comp.wordlist.0[0];
assert_eq!(main, vec![OpCode::Call(1)]);
let t = &comp.wordlist.0[1];
- assert_eq!(t, vec![OpCode::TIf(2, Some(3)), OpCode::Ret]);
+ assert_eq!(t, vec![OpCode::TIf(2, Some(3))]);
let tr = &comp.wordlist.0[2];
assert_eq!(tr, vec![OpCode::Num(1), OpCode::Num(2), OpCode::Add, OpCode::Ret]);
let fl = &comp.wordlist.0[3];