diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-10-25T16·54+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-10-25T16·54+0000 |
commit | 37d7abd69402f0e7a78d4d2f2d78996409a8563a (patch) | |
tree | bf844e4486b0e055921583c4b7c2d3d843b34485 /src/libexpr/primops.cc | |
parent | f4d44a002688262d33093494a7fea1bb11b97ac9 (diff) |
* New language feature: with expressions.
The expression `with E1; E2' evaluates to E2 with all bindings in the attribute set E1 substituted. E.g., with {x = 123;}; x evaluates to 123. That is, the attribute set E1 is in scope in E2. This is particularly useful when importing files containing lots definitions. E.g., instead of let { inherit (import ./foo.nix) a b c d e f; body = ... a ... f ...; } we can now say with import ./foo.nix; ... a ... f ... I.e., we don't have to say what variables should be brought into scope.
Diffstat (limited to 'src/libexpr/primops.cc')
-rw-r--r-- | src/libexpr/primops.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 070ed1b54aa7..938d9bb8c13b 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -205,7 +205,7 @@ static Expr primDerivation(EvalState & state, const ATermVector & _args) try { processBinding(state, value, ne, ss); } catch (Error & e) { - throw Error(format("while processing derivation attribute `%1%' at %2%:\n%3%") + throw Error(format("while processing the derivation attribute `%1%' at %2%:\n%3%") % key % showPos(pos) % e.msg()); } |