aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libcmd/repl.cc3
-rw-r--r--src/libexpr/eval.cc20
2 files changed, 4 insertions, 19 deletions
diff --git a/src/libcmd/repl.cc b/src/libcmd/repl.cc
index 6859e5c07..b14f43ec4 100644
--- a/src/libcmd/repl.cc
+++ b/src/libcmd/repl.cc
@@ -901,8 +901,8 @@ void runRepl(
repl->initEnv();
+ // add 'extra' vars.
std::set<std::string> names;
-
for (auto & [name, value] : extraEnv) {
// names.insert(ANSI_BOLD + name + ANSI_NORMAL);
names.insert(name);
@@ -951,6 +951,7 @@ struct CmdRepl : StoreCommand, MixEvalArgs
auto repl = std::make_unique<NixRepl>(evalState);
repl->autoArgs = getAutoArgs(*repl->state);
+ repl->initEnv();
repl->mainLoop(files);
}
};
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 377e1b2f8..d99e73471 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -715,8 +715,9 @@ void mapStaticEnvBindings(const StaticEnv &se, const Env &env, valmap & vm)
{
// add bindings for the next level up first, so that the bindings for this level
// override the higher levels.
+ // The top level bindings (builtins) are skipped since they are added for us by initEnv()
if (env.up && se.up) {
- mapStaticEnvBindings( *se.up, *env.up,vm);
+ mapStaticEnvBindings(*se.up, *env.up,vm);
// iterate through staticenv bindings and add them.
auto map = valmap();
@@ -727,23 +728,6 @@ void mapStaticEnvBindings(const StaticEnv &se, const Env &env, valmap & vm)
vm.merge(map);
}
- else
- {
- std::cout << " -------------------- " << std::endl;
- // iterate through staticenv bindings and add them,
- // except for the __* ones.
- auto map = valmap();
- for (auto iter = se.vars.begin(); iter != se.vars.end(); ++iter)
- {
- std::cout << iter->first << std::endl;
- std::string s = iter->first;
- if (s.substr(0,2) != "__") {
- map[iter->first] = env.values[iter->second];
- }
- }
-
- vm.merge(map);
- }
}