This turns several instances of unsoundness into runtime infinite recursion errors Fixes https://github.com/NixOS/nix/issues/7012, https://github.com/NixOS/nix/issues/3241 Change-Id: Id8d352c5a78ef08d8913f07fe83f55c875684714
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
error:
|
|
… from call site
|
|
at /pwd/in.nix:4:11:
|
|
3| b = { ${lenName a} = null; };
|
|
4| a = { ${lenName b} = null; };
|
|
| ^
|
|
5|
|
|
|
|
… while calling 'lenName'
|
|
at /pwd/in.nix:2:13:
|
|
1| let
|
|
2| lenName = x: toString (builtins.length (builtins.attrNames x));
|
|
| ^
|
|
3| b = { ${lenName a} = null; };
|
|
|
|
… while calling the 'toString' builtin
|
|
at /pwd/in.nix:2:16:
|
|
1| let
|
|
2| lenName = x: toString (builtins.length (builtins.attrNames x));
|
|
| ^
|
|
3| b = { ${lenName a} = null; };
|
|
|
|
… while calling the 'length' builtin
|
|
at /pwd/in.nix:2:26:
|
|
1| let
|
|
2| lenName = x: toString (builtins.length (builtins.attrNames x));
|
|
| ^
|
|
3| b = { ${lenName a} = null; };
|
|
|
|
… while evaluating the first argument passed to builtins.length
|
|
|
|
… while calling the 'attrNames' builtin
|
|
at /pwd/in.nix:2:43:
|
|
1| let
|
|
2| lenName = x: toString (builtins.length (builtins.attrNames x));
|
|
| ^
|
|
3| b = { ${lenName a} = null; };
|
|
|
|
… while evaluating the argument passed to builtins.attrNames
|
|
|
|
… from call site
|
|
at /pwd/in.nix:3:11:
|
|
2| lenName = x: toString (builtins.length (builtins.attrNames x));
|
|
3| b = { ${lenName a} = null; };
|
|
| ^
|
|
4| a = { ${lenName b} = null; };
|
|
|
|
(6 duplicate frames omitted)
|
|
|
|
error: infinite recursion encountered
|