diff options
Diffstat (limited to 'tvix/eval/src/tests/tvix_tests/eval-okay-builtins-genericClosure-pointer-equality.nix')
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-builtins-genericClosure-pointer-equality.nix | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-builtins-genericClosure-pointer-equality.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-builtins-genericClosure-pointer-equality.nix new file mode 100644 index 0000000000..f6ca340c09 --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-builtins-genericClosure-pointer-equality.nix @@ -0,0 +1,15 @@ +let + foo = x: x; +in + +# key needs to be a list since it uses comparison, not equality checks: + # lists are comparable in Nix if all non-comparable items in them are equal (e.g. + # functions, attribute sets). +builtins.genericClosure { + startSet = [ + { key = [{ inherit foo; }]; val = null; } + ]; + operator = { val, ... }: if val != null then [ ] else [ + { key = [{ inherit foo; }]; val = throw "no pointer equality? π₯Ίππ"; } + ]; +} |