don't include errpos for addErrorContext

This commit is contained in:
Ben Burdette 2020-07-01 11:49:01 -06:00
parent 2a39c083dc
commit 3629b0585a
2 changed files with 5 additions and 5 deletions

View file

@ -471,8 +471,7 @@ static void prim_addErrorContext(EvalState & state, const Pos & pos, Value * * a
v = *args[1];
} catch (Error & e) {
PathSet context;
// TODO: is this right, include this pos?? Test it. esp with LOC.
e.addTrace(pos, "%1%", state.coerceToString(pos, *args[0], context));
e.addTrace(std::nullopt, state.coerceToString(pos, *args[0], context));
throw;
}
}

View file

@ -305,7 +305,7 @@ std::ostream& showErrorInfo(std::ostream &out, const ErrorInfo &einfo, bool show
nl = true;
}
if (einfo.errPos.has_value()) {
if (einfo.errPos.has_value() && (*einfo.errPos)) {
auto loc = getCodeLines(*einfo.errPos);
// lines of code.
@ -359,9 +359,10 @@ std::ostream& showErrorInfo(std::ostream &out, const ErrorInfo &einfo, bool show
out << ANSI_BLUE << "trace: " << ANSI_NORMAL << iter->hint.str();
nl = true;
auto pos = *iter->pos;
if (pos) {
if (*iter->pos) {
auto pos = iter->pos.value();
out << std::endl << prefix;
printAtPos(prefix, pos, out);
auto loc = getCodeLines(pos);
if (loc.has_value())