Restore Nix 2.3 behaviour for {__impure,__contentAddressed} = false

Fixes #8405.
This commit is contained in:
Eelco Dolstra 2023-05-27 17:53:30 +02:00
parent f41dd2c306
commit e4aebccf20

View file

@ -1152,16 +1152,14 @@ drvName, Bindings * attrs, Value & v)
if (i->value->type() == nNull) continue; if (i->value->type() == nNull) continue;
} }
if (i->name == state.sContentAddressed) { if (i->name == state.sContentAddressed && state.forceBool(*i->value, noPos, context_below)) {
contentAddressed = state.forceBool(*i->value, noPos, context_below); contentAddressed = true;
if (contentAddressed) experimentalFeatureSettings.require(Xp::CaDerivations);
experimentalFeatureSettings.require(Xp::CaDerivations);
} }
else if (i->name == state.sImpure) { else if (i->name == state.sImpure && state.forceBool(*i->value, noPos, context_below)) {
isImpure = state.forceBool(*i->value, noPos, context_below); isImpure = true;
if (isImpure) experimentalFeatureSettings.require(Xp::ImpureDerivations);
experimentalFeatureSettings.require(Xp::ImpureDerivations);
} }
/* The `args' attribute is special: it supplies the /* The `args' attribute is special: it supplies the