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 000000000000..5e662cdaf75e --- /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? π₯Ίππ"; } + ]; +} |