From 663362f3df5cc62218db8b443a77b2d78240092a Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Mon, 11 Dec 2023 22:59:14 -0800 Subject: fix(tvix/eval): fix testing catchables for inequality Fixes b/347. Change-Id: Icad0251884d4d8adcdf8d690b91385bf4896f9c8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10294 Tested-by: BuildkiteCI Autosubmit: Adam Joseph Reviewed-by: tazjin --- tvix/eval/src/vm/mod.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'tvix/eval/src/vm/mod.rs') diff --git a/tvix/eval/src/vm/mod.rs b/tvix/eval/src/vm/mod.rs index 312d1b8935..3d3b47be23 100644 --- a/tvix/eval/src/vm/mod.rs +++ b/tvix/eval/src/vm/mod.rs @@ -675,8 +675,13 @@ impl<'o> VM<'o> { } OpCode::OpInvert => { - let v = self.stack_pop().as_bool().with_span(&frame, self)?; - self.stack.push(Value::Bool(!v)); + let v = self.stack_pop(); + if v.is_catchable() { + self.stack.push(v); + } else { + let v = v.as_bool().with_span(&frame, self)?; + self.stack.push(Value::Bool(!v)); + } } OpCode::OpList(Count(count)) => { -- cgit 1.4.1