diagnose attr duplication at the path the duplication was detected, not at the path the current attribute wanted to place. doing the latter is only correct if a leaf attribute was duplicated, not if an attrpath was set to a non-attrset in one binding and a (potentially implied) attrset in another binding. fixes #124 Change-Id: Ic4aa9cc12a9874d4e7897c6f64408f10aa36fc82
22 lines
715 B
Markdown
22 lines
715 B
Markdown
---
|
|
synopsis: Duplicate attribute reports are more accurate
|
|
# prs: cl 557
|
|
---
|
|
|
|
Duplicate attribute errors are now more accurate, showing the path at which an error was detected rather than the full, possibly longer, path that caused the error.
|
|
Error reports are now
|
|
```ShellSession
|
|
$ nix eval --expr '{ a.b = 1; a.b.c.d = 1; }'
|
|
error: attribute 'a.b' already defined at «string»:1:3
|
|
at «string»:1:12:
|
|
1| { a.b = 1; a.b.c.d = 1;
|
|
| ^
|
|
```
|
|
instead of
|
|
```ShellSession
|
|
$ nix eval --expr '{ a.b = 1; a.b.c.d = 1; }'
|
|
error: attribute 'a.b.c.d' already defined at «string»:1:3
|
|
at «string»:1:12:
|
|
1| { a.b = 1; a.b.c.d = 1;
|
|
| ^
|
|
```
|