about summary refs log tree commit diff
path: root/tvix/eval/src/vm/mod.rs
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2023-09-09T07·10-0700
committerclbot <clbot@tvl.fyi>2023-09-24T21·54+0000
commit926459ce694536432c36d8f0d3fb25b821945852 (patch)
tree2c5509c92afec80b281f82761f19ee192a85851a /tvix/eval/src/vm/mod.rs
parent6015604bd81e064da8253c58825315a3b8e47b30 (diff)
refactor(tvix/eval): factor CatchableErrorKind out of ErrorKind r/6649
This commit creates a separate enum for "catchable" errors (the kind
that `builtins.tryEval` can detect).

Change-Id: Ie81d1112526d852255d9842f67045f88eab192af
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9287
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: Adam Joseph <adam@westernsemico.com>
Diffstat (limited to '')
-rw-r--r--tvix/eval/src/vm/mod.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/tvix/eval/src/vm/mod.rs b/tvix/eval/src/vm/mod.rs
index d883b25000..07d3725fd9 100644
--- a/tvix/eval/src/vm/mod.rs
+++ b/tvix/eval/src/vm/mod.rs
@@ -21,7 +21,7 @@ use crate::{
     chunk::Chunk,
     cmp_op,
     compiler::GlobalsMap,
-    errors::{Error, ErrorKind, EvalResult},
+    errors::{CatchableErrorKind, Error, ErrorKind, EvalResult},
     io::EvalIO,
     nix_search_path::NixSearchPath,
     observer::RuntimeObserver,
@@ -925,7 +925,10 @@ impl<'o> VM<'o> {
                 }
 
                 OpCode::OpAssertFail => {
-                    frame.error(self, ErrorKind::AssertionFailed)?;
+                    frame.error(
+                        self,
+                        ErrorKind::CatchableErrorKind(CatchableErrorKind::AssertionFailed),
+                    )?;
                 }
 
                 // Data-carrying operands should never be executed,