forked from lix-project/lix
Qyriad
d00edfb28d
Turns errors like:
let
errpkg = throw "invalid foobar";
in errpkg.meta
error:
… while calling the 'throw' builtin
at «string»:2:12:
1| let
2| errpkg = throw "invalid foobar";
| ^
3| in errpkg.meta
error: invalid foobar
into errors like:
let
errpkg = throw "invalid foobar";
in errpkg.meta
error:
… while evaluating 'errpkg' to select 'meta' on it
at «string»:3:4:
2| errpkg = throw "invalid foobar";
3| in errpkg.meta
| ^
… while calling the 'throw' builtin
at «string»:2:12:
1| let
2| errpkg = throw "invalid foobar";
| ^
3| in errpkg.meta
error: invalid foobar
For the low price of one try/catch, you too can have the incorrect line
of code actually show up in the trace!
Change-Id: If8d6200ec1567706669d405c34adcd7e2d2cd29d
19 lines
586 B
Plaintext
19 lines
586 B
Plaintext
error:
|
|
… while evaluating 'a' to select 'foo' on it
|
|
at /pwd/lang/eval-fail-recursion.nix:1:21:
|
|
1| let a = {} // a; in a.foo
|
|
| ^
|
|
2|
|
|
|
|
… in the right operand of the update (//) operator
|
|
at /pwd/lang/eval-fail-recursion.nix:1:12:
|
|
1| let a = {} // a; in a.foo
|
|
| ^
|
|
2|
|
|
|
|
error: infinite recursion encountered
|
|
at /pwd/lang/eval-fail-recursion.nix:1:15:
|
|
1| let a = {} // a; in a.foo
|
|
| ^
|
|
2|
|