about summary refs log tree commit diff
path: root/third_party/nix/src/libexpr/get-drvs.cc
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-12-22T20·51+0100
committertazjin <mail@tazj.in>2020-12-23T11·33+0000
commitf7ea650142eb796eb3f2827c805cc0bc563e2183 (patch)
tree2d451749e40e0278aac89fe38dcbfa72015ccb95 /third_party/nix/src/libexpr/get-drvs.cc
parent0f9a7b3f86f56162cf1a694d98d82e4937d44a52 (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.cc20
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);
           }
         }