From 8275403e955e8998c61ecaa07d70949e3bd53a66 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Mon, 25 Aug 2025 12:25:30 -0400 Subject: tail-position if no longer needs ret --- src/forth/compiler.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/forth/compiler.rs') 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]; -- cgit v1.3