diff --git a/compiler/gen_dev/src/lib.rs b/compiler/gen_dev/src/lib.rs index 6e2a442e82..702b0c534f 100644 --- a/compiler/gen_dev/src/lib.rs +++ b/compiler/gen_dev/src/lib.rs @@ -104,9 +104,9 @@ where fail: _, } => { // for now, treat invoke as a normal call - - let stmt = Stmt::Let(*symbol, Expr::Call(call.clone()), *layout, pass); - self.build_stmt(&stmt) + self.build_expr(symbol, &Expr::Call(call.clone()), layout)?; + self.free_symbols(stmt); + self.build_stmt(pass) } Stmt::Switch { cond_symbol, @@ -478,15 +478,15 @@ where Stmt::Invoke { symbol, - layout, + layout: _, call, pass, fail: _, } => { // for now, treat invoke as a normal call - - let stmt = Stmt::Let(*symbol, Expr::Call(call.clone()), *layout, pass); - self.scan_ast(&stmt); + self.set_last_seen(*symbol, stmt); + self.scan_ast_call(call, stmt); + self.scan_ast(pass); } Stmt::Switch { diff --git a/compiler/gen_dev/tests/gen_num.rs b/compiler/gen_dev/tests/gen_num.rs index 97dcec5723..80324a3f69 100644 --- a/compiler/gen_dev/tests/gen_num.rs +++ b/compiler/gen_dev/tests/gen_num.rs @@ -89,7 +89,6 @@ mod gen_num { } #[test] - #[ignore] fn i64_force_stack() { // This claims 33 registers. One more than Arm and RISC-V, and many more than x86-64. assert_evals_to!(