aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libexpr/primops.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 981f87ce8..d33b0030f 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -189,19 +189,20 @@ static void prim_throw(EvalState & state, Value * * args, Value & v)
}
-#if 0
static void prim_addErrorContext(EvalState & state, Value * * args, Value & v)
{
- PathSet context;
try {
- return evalExpr(state, args[1]);
+ state.forceValue(*args[1]);
+ v = *args[1];
} catch (Error & e) {
- e.addPrefix(format("%1%\n") %
- evalString(state, args[0], context));
+ PathSet context;
+ e.addPrefix(format("%1%\n") % state.coerceToString(*args[0], context));
throw;
}
}
+
+#if 0
/* Try evaluating the argument. Success => {success=true; value=something;},
* else => {success=false; value=false;} */
static void prim_tryEval(EvalState & state, Value * * args, Value & v)
@@ -1060,8 +1061,8 @@ void EvalState::createBaseEnv()
addPrimOp("__genericClosure", 1, prim_genericClosure);
addPrimOp("abort", 1, prim_abort);
addPrimOp("throw", 1, prim_throw);
-#if 0
addPrimOp("__addErrorContext", 2, prim_addErrorContext);
+#if 0
addPrimOp("__tryEval", 1, prim_tryEval);
#endif
addPrimOp("__getEnv", 1, prim_getEnv);