forked from lix-project/lix
Properly take the last assignment in the REPL
When a variable is assigned in the REPL, make sure to remove any possible reference to the old one so that we correctly pick the new one afterwards Fix #5706
This commit is contained in:
parent
bc57b3854e
commit
55e3a1108c
|
@ -672,6 +672,8 @@ void NixRepl::addVarToScope(const Symbol & name, Value & v)
|
||||||
{
|
{
|
||||||
if (displ >= envSize)
|
if (displ >= envSize)
|
||||||
throw Error("environment full; cannot add more variables");
|
throw Error("environment full; cannot add more variables");
|
||||||
|
if (auto oldVar = staticEnv.find(name); oldVar != staticEnv.vars.end())
|
||||||
|
staticEnv.vars.erase(oldVar);
|
||||||
staticEnv.vars.emplace_back(name, displ);
|
staticEnv.vars.emplace_back(name, displ);
|
||||||
staticEnv.sort();
|
staticEnv.sort();
|
||||||
env->values[displ++] = &v;
|
env->values[displ++] = &v;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
source common.sh
|
source common.sh
|
||||||
|
|
||||||
replCmds="
|
replCmds="
|
||||||
|
simple = 1
|
||||||
simple = import ./simple.nix
|
simple = import ./simple.nix
|
||||||
:b simple
|
:b simple
|
||||||
:log simple
|
:log simple
|
||||||
|
|
Loading…
Reference in a new issue