* Allow a default value in attribute selection by writing
x.y.z or default (as originally proposed in https://mail.cs.uu.nl/pipermail/nix-dev/2009-September/002989.html). For instance, an expression like stdenv.lib.attrByPath ["features" "ckSched"] false args can now be written as args.features.ckSched or false
This commit is contained in:
parent
2b9e29b1c8
commit
0a623a10c7
9 changed files with 70 additions and 22 deletions
1
tests/lang/eval-okay-attrs5.exp
Normal file
1
tests/lang/eval-okay-attrs5.exp
Normal file
|
@ -0,0 +1 @@
|
|||
[ 123 "foo" 456 456 "foo" "xyzzy" "xyzzy" true ]
|
21
tests/lang/eval-okay-attrs5.nix
Normal file
21
tests/lang/eval-okay-attrs5.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
with import ./lib.nix;
|
||||
|
||||
let
|
||||
|
||||
as = { x.y.z = 123; a.b.c = 456; };
|
||||
|
||||
bs = { foo.bar = "foo"; };
|
||||
|
||||
or = x: y: x || y;
|
||||
|
||||
in
|
||||
[ as.x.y.z
|
||||
as.foo or "foo"
|
||||
as.x.y.bla or as.a.b.c
|
||||
as.a.b.c or as.x.y.z
|
||||
as.x.y.bla or bs.foo.bar or "xyzzy"
|
||||
as.x.y.bla or bs.bar.foo or "xyzzy"
|
||||
123.bla or null.foo or "xyzzy"
|
||||
# Backwards compatibility test.
|
||||
(fold or [] [true false false])
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue