From afb839a0c9888bc8b98c0dd4abd28c79d754c250 Mon Sep 17 00:00:00 2001 From: eldritch horrors Date: Mon, 18 Mar 2024 21:09:39 +0100 Subject: libexpr: associate let exprs with the correct StaticEnv static env association is from expr to its enclosing scope, but let exprs set their association to their *inner* scope. this skips one level of envs and will cause segfaults if the parent is a with expr. fixes #145 Change-Id: I1d22146110f071ede21b4eed7ed34b5850ef2ef3 --- src/libexpr/nixexpr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/libexpr/nixexpr.cc') diff --git a/src/libexpr/nixexpr.cc b/src/libexpr/nixexpr.cc index a9989b59e..e0f4def4c 100644 --- a/src/libexpr/nixexpr.cc +++ b/src/libexpr/nixexpr.cc @@ -483,7 +483,7 @@ void ExprLet::bindVars(EvalState & es, const std::shared_ptr & i.second.e->bindVars(es, i.second.chooseByKind(newEnv, env, inheritFromEnv)); if (es.debugRepl) - es.exprEnvs.insert(std::make_pair(this, newEnv)); + es.exprEnvs.insert(std::make_pair(this, env)); body->bindVars(es, newEnv); } -- cgit v1.2.3