aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libexpr/eval.cc47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 0446376f3..2b697882b 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -1366,29 +1366,30 @@ void EvalState::autoCallFunction(Bindings & args, Value & fun, Value & res)
actualArgs->attrs->push_back(*j);
} else if (!i.def) {
throwUndefinedVarError(i.pos, R"(cannot auto-call a function that has an argument without a default value ('%1%')
- An 'auto-call' is when a nix expression is evaluated without any external arguments.
- If that nix expression is a function, and that function's arguments all have default
- values, then all is well.
-
- But if the function arguments don't have default values, evaluation fails.
-
- The classic case for this error is evaluating a nix file with nix-build that expects
- to be evaluated by callPackage.
- # in 'callPackage' format: expression is a function that takes an argument 'stdenv'.
- # callPackage would implicitly pull 'stdenv' from nixpkgs, then call this function.
- { stdenv }:
- stdenv.mkDerivation {
- ...
-
- # in 'auto-call' format: nixpkgs is imported explicitly, and used directly.
- let
- nixpkgs = import <nixpkgs> {};
- in
- nixpkgs.stdenv.mkDerivation {
- ...
-
- See this nix pill for more information re callPackage format:
- https://nixos.org/guides/nix-pills/callpackage-design-pattern.html)", i.name);
+
+An 'auto-call' is when a nix expression is evaluated without any external arguments.
+If that nix expression is a function, and that function's arguments all have default
+values, then all is well.
+
+But if the function arguments don't have default values, evaluation fails.
+
+The classic case for this error is evaluating a nix file with nix-build that expects
+to be evaluated by callPackage.
+ # in 'callPackage' format: expression is a function that takes an argument 'stdenv'.
+ # callPackage would implicitly pull 'stdenv' from nixpkgs, then call this function.
+ { stdenv }:
+ stdenv.mkDerivation {
+ ...
+
+ # in 'auto-call' format: nixpkgs is imported explicitly, and used directly.
+ let
+ nixpkgs = import <nixpkgs> {};
+ in
+ nixpkgs.stdenv.mkDerivation {
+ ...
+
+More about callPackage:
+https://nixos.org/guides/nix-pills/callpackage-design-pattern.html)", i.name);
}
}
}