diff options
author | Vincent Ambo <mail@tazj.in> | 2020-12-22T20·51+0100 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2020-12-23T11·33+0000 |
commit | f7ea650142eb796eb3f2827c805cc0bc563e2183 (patch) | |
tree | 2d451749e40e0278aac89fe38dcbfa72015ccb95 /third_party/nix/src/libexpr/get-drvs.cc | |
parent | 0f9a7b3f86f56162cf1a694d98d82e4937d44a52 (diff) |
refactor(tvix/libexpr): Remove Bindings::SortedByKeys() r/2028
Since we don't have a Bindings implementation with unstable order this function is not required, as its callers can just iterate over the attributes instead. Change-Id: I01b35277b5a2dde69d684bc881dbd7c0701bcbb3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2291 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
Diffstat (limited to 'third_party/nix/src/libexpr/get-drvs.cc')
-rw-r--r-- | third_party/nix/src/libexpr/get-drvs.cc | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/third_party/nix/src/libexpr/get-drvs.cc b/third_party/nix/src/libexpr/get-drvs.cc index d81fb5dfadc8..164c1e54f38e 100644 --- a/third_party/nix/src/libexpr/get-drvs.cc +++ b/third_party/nix/src/libexpr/get-drvs.cc @@ -389,26 +389,26 @@ static void getDerivations(EvalState& state, Value& vIn, there are names clashes between derivations, the derivation bound to the attribute with the "lower" name should take precedence). */ - for (auto& i : v.attrs->SortedByKeys()) { - DLOG(INFO) << "evaluating attribute '" << i->name << "'"; - if (!std::regex_match(std::string(i->name), attrRegex)) { + for (auto& [_, i] : *v.attrs) { + DLOG(INFO) << "evaluating attribute '" << i.name << "'"; + if (!std::regex_match(std::string(i.name), attrRegex)) { continue; } - std::string pathPrefix2 = addToPath(pathPrefix, i->name); + std::string pathPrefix2 = addToPath(pathPrefix, i.name); if (combineChannels) { - getDerivations(state, *i->value, pathPrefix2, autoArgs, drvs, done, + getDerivations(state, *i.value, pathPrefix2, autoArgs, drvs, done, ignoreAssertionFailures); - } else if (getDerivation(state, *i->value, pathPrefix2, drvs, done, + } else if (getDerivation(state, *i.value, pathPrefix2, drvs, done, ignoreAssertionFailures)) { /* If the value of this attribute is itself a set, should we recurse into it? => Only if it has a `recurseForDerivations = true' attribute. */ - if (i->value->type == tAttrs) { - Bindings::iterator j = i->value->attrs->find( + if (i.value->type == tAttrs) { + Bindings::iterator j = i.value->attrs->find( state.symbols.Create("recurseForDerivations")); - if (j != i->value->attrs->end() && + if (j != i.value->attrs->end() && state.forceBool(*j->second.value, *j->second.pos)) { - getDerivations(state, *i->value, pathPrefix2, autoArgs, drvs, done, + getDerivations(state, *i.value, pathPrefix2, autoArgs, drvs, done, ignoreAssertionFailures); } } |