1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 08:31:16 +02:00

first whack at passing evalState as an arg to debuggerHook.

This commit is contained in:
Ben Burdette 2022-05-16 09:20:51 -06:00
parent 86ba0a702c
commit 667074b586
9 changed files with 15 additions and 14 deletions

View file

@ -119,13 +119,14 @@ ref<EvalState> EvalCommand::getEvalState()
#endif
;
if (startReplOnEvalErrors)
debuggerHook = [evalState{ref<EvalState>(evalState)}](const Error * error, const Env & env, const Expr & expr) {
// debuggerHook = [evalState{ref<EvalState>(evalState)}](const Error * error, const Env & env, const Expr & expr) {
debuggerHook = [](const EvalState & evalState, const Error * error, const Env & env, const Expr & expr) {
auto dts =
error && expr.getPos()
? std::make_unique<DebugTraceStacker>(
*evalState,
evalState,
DebugTrace {
.pos = error->info().errPos ? *error->info().errPos : evalState->positions[expr.getPos()],
.pos = error->info().errPos ? *error->info().errPos : evalState.positions[expr.getPos()],
.expr = expr,
.env = env,
.hint = error->info().msg,
@ -137,8 +138,8 @@ ref<EvalState> EvalCommand::getEvalState()
printError("%s\n\n" ANSI_BOLD "Starting REPL to allow you to inspect the current state of the evaluator.\n" ANSI_NORMAL, error->what());
if (expr.staticEnv) {
auto vm = mapStaticEnvBindings(evalState->symbols, *expr.staticEnv.get(), env);
runRepl(evalState, *vm);
auto vm = mapStaticEnvBindings(evalState.symbols, *expr.staticEnv.get(), env);
runRepl(*const_cast<EvalState*>(&evalState), *vm);
}
};
}