forked from lix-project/lix
Print the value in `value is X while a Y is expected` error
(cherry picked from commit 5f72a97092da6af28a7d2b2a50d74e9d34fae7e1)
Change-Id: Idb4bc903ae59a0f5b6fb3b1da4d47970fe0a6efe
43 lines
784 B
Markdown
43 lines
784 B
Markdown
---
|
|
synopsis: Source locations are printed more consistently in errors
|
|
issues: 561
|
|
prs: 9555
|
|
---
|
|
|
|
Source location information is now included in error messages more
|
|
consistently. Given this code:
|
|
|
|
```nix
|
|
let
|
|
attr = {foo = "bar";};
|
|
key = {};
|
|
in
|
|
attr.${key}
|
|
```
|
|
|
|
Previously, Nix would show this unhelpful message when attempting to evaluate
|
|
it:
|
|
|
|
```
|
|
error:
|
|
… while evaluating an attribute name
|
|
|
|
error: value is a set while a string was expected
|
|
```
|
|
|
|
Now, the error message displays where the problematic value was found:
|
|
|
|
```
|
|
error:
|
|
… while evaluating an attribute name
|
|
|
|
at bad.nix:4:11:
|
|
|
|
3| key = {};
|
|
4| in attr.${key}
|
|
| ^
|
|
5|
|
|
|
|
error: expected a string but found a set: { }
|
|
```
|