diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2023-05-27 17:53:30 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2023-05-27 17:53:30 +0200 |
commit | e4aebccf209c12714f5547ec5acf08b1fd7f51cc (patch) | |
tree | cb45a082f9234c6a85be7f6acb8bcd8aee1df433 /src/libexpr/primops.cc | |
parent | f41dd2c306a5986340b04c1635bd674e4a01b78d (diff) |
Restore Nix 2.3 behaviour for {__impure,__contentAddressed} = false
Fixes #8405.
Diffstat (limited to 'src/libexpr/primops.cc')
-rw-r--r-- | src/libexpr/primops.cc | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index cfae1e5f8..341962dc9 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -1152,16 +1152,14 @@ drvName, Bindings * attrs, Value & v) if (i->value->type() == nNull) continue; } - if (i->name == state.sContentAddressed) { - contentAddressed = state.forceBool(*i->value, noPos, context_below); - if (contentAddressed) - experimentalFeatureSettings.require(Xp::CaDerivations); + if (i->name == state.sContentAddressed && state.forceBool(*i->value, noPos, context_below)) { + contentAddressed = true; + experimentalFeatureSettings.require(Xp::CaDerivations); } - else if (i->name == state.sImpure) { - isImpure = state.forceBool(*i->value, noPos, context_below); - if (isImpure) - experimentalFeatureSettings.require(Xp::ImpureDerivations); + else if (i->name == state.sImpure && state.forceBool(*i->value, noPos, context_below)) { + isImpure = true; + experimentalFeatureSettings.require(Xp::ImpureDerivations); } /* The `args' attribute is special: it supplies the |