forked from lix-project/lix
In checkOverlay, accept underscored names for final/prev args.
Resolves #4416.
This commit is contained in:
parent
133905b309
commit
3f070cc417
|
@ -346,10 +346,14 @@ struct CmdFlakeCheck : FlakeCommand
|
||||||
auto checkOverlay = [&](const std::string & attrPath, Value & v, const Pos & pos) {
|
auto checkOverlay = [&](const std::string & attrPath, Value & v, const Pos & pos) {
|
||||||
try {
|
try {
|
||||||
state->forceValue(v, pos);
|
state->forceValue(v, pos);
|
||||||
if (!v.isLambda() || v.lambda.fun->hasFormals() || std::string(v.lambda.fun->arg) != "final")
|
if (!v.isLambda() || v.lambda.fun->hasFormals() ||
|
||||||
|
(std::string(v.lambda.fun->arg) != "final" &&
|
||||||
|
std::string(v.lambda.fun->arg) != "_final"))
|
||||||
throw Error("overlay does not take an argument named 'final'");
|
throw Error("overlay does not take an argument named 'final'");
|
||||||
auto body = dynamic_cast<ExprLambda *>(v.lambda.fun->body);
|
auto body = dynamic_cast<ExprLambda *>(v.lambda.fun->body);
|
||||||
if (!body || body->hasFormals() || std::string(body->arg) != "prev")
|
if (!body || body->hasFormals() ||
|
||||||
|
(std::string(body->arg) != "prev" &&
|
||||||
|
std::string(body->arg) != "_prev"))
|
||||||
throw Error("overlay does not take an argument named 'prev'");
|
throw Error("overlay does not take an argument named 'prev'");
|
||||||
// FIXME: if we have a 'nixpkgs' input, use it to
|
// FIXME: if we have a 'nixpkgs' input, use it to
|
||||||
// evaluate the overlay.
|
// evaluate the overlay.
|
||||||
|
|
Loading…
Reference in a new issue