Merge branch 'assert-show-expression' of https://github.com/LnL7/nix

This commit is contained in:
Eelco Dolstra 2020-01-13 21:49:55 +01:00
commit bfaa4db7bd

View file

@ -531,9 +531,9 @@ LocalNoInlineNoReturn(void throwTypeError(const char * s, const ExprLambda & fun
throw TypeError(format(s) % fun.showNamePos() % s2 % pos); throw TypeError(format(s) % fun.showNamePos() % s2 % pos);
} }
LocalNoInlineNoReturn(void throwAssertionError(const char * s, const Pos & pos)) LocalNoInlineNoReturn(void throwAssertionError(const char * s, const string & s1, const Pos & pos))
{ {
throw AssertionError(format(s) % pos); throw AssertionError(format(s) % s1 % pos);
} }
LocalNoInlineNoReturn(void throwUndefinedVarError(const char * s, const string & s1, const Pos & pos)) LocalNoInlineNoReturn(void throwUndefinedVarError(const char * s, const string & s1, const Pos & pos))
@ -1262,8 +1262,11 @@ void ExprIf::eval(EvalState & state, Env & env, Value & v)
void ExprAssert::eval(EvalState & state, Env & env, Value & v) void ExprAssert::eval(EvalState & state, Env & env, Value & v)
{ {
if (!state.evalBool(env, cond, pos)) if (!state.evalBool(env, cond, pos)) {
throwAssertionError("assertion failed at %1%", pos); std::ostringstream out;
cond->show(out);
throwAssertionError("assertion %1% failed at %2%", out.str(), pos);
}
body->eval(state, env, v); body->eval(state, env, v);
} }