From 06764118ea1327973ead981ee204e8c0c2bf867e Mon Sep 17 00:00:00 2001 From: eldritch horrors Date: Fri, 8 Mar 2024 09:52:29 +0100 Subject: [PATCH] remove ExprAttrs::AttrDef::inherited it's no longer widely used and has a rather confusing meaning now that inherit-from is handled very differently. (cherry picked from commit 1cd87b7042d14aae1fafa47b1c28db4c5bd20de7) Change-Id: I90bbebddf06762960d8ca4f621cf042ce8ae83f9 --- src/libexpr/eval.cc | 2 +- src/libexpr/nixexpr.hh | 2 -- src/libexpr/parser-state.hh | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 9fa036d6c..1739a04fa 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -1251,7 +1251,7 @@ void ExprAttrs::eval(EvalState & state, Env & env, Value & v) Displacement displ = 0; for (auto & i : attrs) { Value * vAttr; - if (hasOverrides && !i.second.inherited()) { + if (hasOverrides && i.second.kind != AttrDef::Kind::Inherited) { vAttr = state.allocValue(); mkThunk(*vAttr, *i.second.chooseByKind(&env2, &env, inheritEnv), i.second.e); } else diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh index cb630d201..73ccfe7bd 100644 --- a/src/libexpr/nixexpr.hh +++ b/src/libexpr/nixexpr.hh @@ -183,8 +183,6 @@ struct ExprAttrs : Expr : kind(kind), e(e), pos(pos) { }; AttrDef() { }; - bool inherited() const { return kind == Kind::Inherited; } - template const T & chooseByKind(const T & plain, const T & inherited, const T & inheritedFrom) const { diff --git a/src/libexpr/parser-state.hh b/src/libexpr/parser-state.hh index d10188f52..a83d8c8b2 100644 --- a/src/libexpr/parser-state.hh +++ b/src/libexpr/parser-state.hh @@ -88,7 +88,7 @@ inline void ParserState::addAttr(ExprAttrs * attrs, AttrPath && attrPath, Expr * if (i->symbol) { ExprAttrs::AttrDefs::iterator j = attrs->attrs.find(i->symbol); if (j != attrs->attrs.end()) { - if (!j->second.inherited()) { + if (j->second.kind != ExprAttrs::AttrDef::Kind::Inherited) { ExprAttrs * attrs2 = dynamic_cast(j->second.e); if (!attrs2) dupAttr(attrPath, pos, j->second.pos); attrs = attrs2;