Skip to content

Commit 5c258d7

Browse files
committed
refactor: Use EvalState::getBuiltins()
1 parent 8a36d2d commit 5c258d7

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

src/libexpr/eval.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ void EvalState::addConstant(const std::string & name, Value * v, Constant info)
448448
/* Install value the base environment. */
449449
staticBaseEnv->vars.emplace_back(symbols.create(name), baseEnvDispl);
450450
baseEnv.values[baseEnvDispl++] = v;
451-
baseEnv.values[0]->payload.attrs->push_back(Attr(symbols.create(name2), v));
451+
getBuiltins().payload.attrs->push_back(Attr(symbols.create(name2), v));
452452
}
453453
}
454454

@@ -516,7 +516,7 @@ Value * EvalState::addPrimOp(PrimOp && primOp)
516516
else {
517517
staticBaseEnv->vars.emplace_back(envName, baseEnvDispl);
518518
baseEnv.values[baseEnvDispl++] = v;
519-
baseEnv.values[0]->payload.attrs->push_back(Attr(symbols.create(primOp.name), v));
519+
getBuiltins().payload.attrs->push_back(Attr(symbols.create(primOp.name), v));
520520
}
521521

522522
return v;
@@ -531,7 +531,7 @@ Value & EvalState::getBuiltins()
531531

532532
Value & EvalState::getBuiltin(const std::string & name)
533533
{
534-
auto it = baseEnv.values[0]->attrs()->get(symbols.create(name));
534+
auto it = getBuiltins().attrs()->get(symbols.create(name));
535535
if (it)
536536
return *it->value;
537537
else

src/libexpr/primops.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4937,7 +4937,7 @@ void EvalState::createBaseEnv()
49374937

49384938
/* Now that we've added all primops, sort the `builtins' set,
49394939
because attribute lookups expect it to be sorted. */
4940-
baseEnv.values[0]->payload.attrs->sort();
4940+
getBuiltins().payload.attrs->sort();
49414941

49424942
staticBaseEnv->sort();
49434943

src/nix/main.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,8 @@ void mainWrapped(int argc, char * * argv)
435435
evalSettings.pureEval = false;
436436
EvalState state({}, openStore("dummy://"), fetchSettings, evalSettings);
437437
auto builtinsJson = nlohmann::json::object();
438-
for (auto & builtin : *state.baseEnv.values[0]->attrs()) {
438+
for (auto & builtinPtr : state.getBuiltins().attrs()->lexicographicOrder(state.symbols)) {
439+
auto & builtin = *builtinPtr;
439440
auto b = nlohmann::json::object();
440441
if (!builtin.value->isPrimOp()) continue;
441442
auto primOp = builtin.value->primOp();

0 commit comments

Comments
 (0)