* Change the scoping of "inherit (e) ..." in recs so that the
attributes of the rec are in scope of `e'. This is useful in
expressions such as
rec {
lib = import ./lib;
inherit (lib) concatStrings;
}
It does change the semantics of expressions such as
let x = {y = 1;}; in rec { x = {y = 2;}; inherit (x) y; }.y
This now returns 2 instead of 1. However, no code in Nixpkgs or
NixOS seems to rely on the old behaviour.
This commit is contained in:
parent
d407d572fd
commit
a64bbe049e
3 changed files with 10 additions and 2 deletions
1
tests/lang/eval-okay-scope-7.exp
Normal file
1
tests/lang/eval-okay-scope-7.exp
Normal file
|
|
@ -0,0 +1 @@
|
|||
Int(1)
|
||||
6
tests/lang/eval-okay-scope-7.nix
Normal file
6
tests/lang/eval-okay-scope-7.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
rec {
|
||||
inherit (x) y;
|
||||
x = {
|
||||
y = 1;
|
||||
};
|
||||
}.y
|
||||
Loading…
Add table
Add a link
Reference in a new issue