From 6ec852e7f07e9bd534cd0327b07c5a2df0e06218 Mon Sep 17 00:00:00 2001 From: regnat Date: Thu, 3 Jun 2021 10:35:51 +0200 Subject: [PATCH] Simplify the forcing of nested records --- src/libexpr/eval.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 5acbf50d7..e94e64346 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -1212,18 +1212,16 @@ bool EvalState::getAttrField(Value & attrs, const std::vector & selector for (auto & name : selector) { nrLookups++; Bindings::iterator j; - forceValue(*vAttrs, pos); if (vAttrs->type() != nAttrs || (j = vAttrs->attrs->find(name)) == vAttrs->attrs->end()) { return false; } vAttrs = j->value; pos2 = j->pos; + forceValue(*vAttrs, pos2 != NULL ? *pos2 : pos ); if (countCalls && pos2) attrSelects[*pos2]++; } - forceValue(*vAttrs, ( pos2 != NULL ? *pos2 : pos ) ); - } catch (Error & e) { if (pos2 && pos2->file != sDerivationNix) { vector strSelector;