diff options
author | Aspen Smith <root@gws.fyi> | 2024-02-09T17·59-0500 |
---|---|---|
committer | aspen <root@gws.fyi> | 2024-02-09T19·11+0000 |
commit | 3fb0697a713cdd5b0c22b3c511419ba3a281746a (patch) | |
tree | 4cc88884ea59a3da8d9fcfcdf7e1110757b260d0 /tvix/eval/src/tests | |
parent | 7a589b3ec67e49edc6de1d3378db1c4c594210f1 (diff) |
fix(tvix/eval): Propagate catchables in NixAttrs::construct r/7492
Correctly propagate the case where the *key* of an attrset is a Value::Catchable (eg { "${builtins.throw "c"}" = "b"; }) in `NixAttrs::construct`, by converting the return type to `Result<Result<Self, CatchableErrorKind>, ErrorKind>` (ugh!!) and correctly handling that everywhere (including an `expect` in the Deserialize impl for NixAttrs, since afaict this is impossible to hit when deserializing from stuff like JSON). Change-Id: Ic4bc611fbfdab27c0bd8a40759689a87c4004a17 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10786 Reviewed-by: raitobezarius <tvl@lahfa.xyz> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval/src/tests')
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.exp | 1 | ||||
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.nix | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.exp b/tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.exp new file mode 100644 index 000000000000..c508d5366f70 --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.exp @@ -0,0 +1 @@ +false diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.nix new file mode 100644 index 000000000000..b9d835bcc5ec --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-attr-key-catchable.nix @@ -0,0 +1 @@ +(builtins.tryEval { "${builtins.throw "a"}" = "b"; }).success |