forked from lix-project/lix
convenience form of addTrace
This commit is contained in:
parent
93e9307329
commit
023912def3
|
@ -594,17 +594,17 @@ LocalNoInlineNoReturn(void throwUndefinedVarError(const Pos & pos, const char *
|
|||
|
||||
LocalNoInline(void addErrorTrace(Error & e, const char * s, const string & s2))
|
||||
{
|
||||
e.addTrace(std::nullopt, hintfmt(s) % s2);
|
||||
e.addTrace(std::nullopt, s, s2);
|
||||
}
|
||||
|
||||
LocalNoInline(void addErrorTrace(Error & e, const Pos & pos, const char * s, const ExprLambda & fun))
|
||||
{
|
||||
e.addTrace(pos, hintfmt(s) % fun.showNamePos());
|
||||
e.addTrace(pos, s, fun.showNamePos());
|
||||
}
|
||||
|
||||
LocalNoInline(void addErrorTrace(Error & e, const Pos & pos, const char * s, const string & s2))
|
||||
{
|
||||
e.addTrace(pos, hintfmt(s) % s2);
|
||||
e.addTrace(pos, s, s2);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -239,13 +239,13 @@ void prim_exec(EvalState & state, const Pos & pos, Value * * args, Value & v)
|
|||
try {
|
||||
parsed = state.parseExprFromString(output, pos.file);
|
||||
} catch (Error & e) {
|
||||
e.addTrace(pos, hintfmt("While parsing the output from '%1%'", program));
|
||||
e.addTrace(pos, "While parsing the output from '%1%'", program);
|
||||
throw;
|
||||
}
|
||||
try {
|
||||
state.eval(parsed, v);
|
||||
} catch (Error & e) {
|
||||
e.addTrace(pos, hintfmt("While evaluating the output from '%1%'", program));
|
||||
e.addTrace(pos, "While evaluating the output from '%1%'", program);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
@ -472,7 +472,7 @@ static void prim_addErrorContext(EvalState & state, const Pos & pos, Value * * a
|
|||
} catch (Error & e) {
|
||||
PathSet context;
|
||||
// TODO: is this right, include this pos?? Test it. esp with LOC.
|
||||
e.addTrace(pos, hintfmt("%1%") % state.coerceToString(pos, *args[0], context));
|
||||
e.addTrace(pos, "%1%", state.coerceToString(pos, *args[0], context));
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
@ -564,7 +564,7 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
|
|||
try {
|
||||
drvName = state.forceStringNoCtx(*attr->value, pos);
|
||||
} catch (Error & e) {
|
||||
e.addTrace(posDrvName, hintfmt("while evaluating the derivation attribute 'name'"));
|
||||
e.addTrace(posDrvName, "while evaluating the derivation attribute 'name'");
|
||||
throw;
|
||||
}
|
||||
|
||||
|
@ -698,8 +698,8 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
|
|||
|
||||
} catch (Error & e) {
|
||||
e.addTrace(posDrvName,
|
||||
hintfmt("while evaluating the attribute '%1%' of the derivation '%2%'",
|
||||
key, drvName));
|
||||
"while evaluating the attribute '%1%' of the derivation '%2%'",
|
||||
key, drvName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -166,6 +166,12 @@ public:
|
|||
const string & msg() const { return calcWhat(); }
|
||||
const ErrorInfo & info() { calcWhat(); return err; }
|
||||
|
||||
template<typename... Args>
|
||||
BaseError & addTrace(std::optional<ErrPos> e, const string &fs, const Args & ... args)
|
||||
{
|
||||
return addTrace(e, hintfmt(fs, args...));
|
||||
}
|
||||
|
||||
BaseError & addTrace(std::optional<ErrPos> e, hintformat hint);
|
||||
};
|
||||
|
||||
|
|
|
@ -593,7 +593,7 @@ static void upgradeDerivations(Globals & globals,
|
|||
} else newElems.push_back(i);
|
||||
|
||||
} catch (Error & e) {
|
||||
e.addTrace(std::nullopt, hintfmt("while trying to find an upgrade for '%s'", i.queryName()));
|
||||
e.addTrace(std::nullopt, "while trying to find an upgrade for '%s'", i.queryName());
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
@ -1185,7 +1185,7 @@ static void opQuery(Globals & globals, Strings opFlags, Strings opArgs)
|
|||
} catch (AssertionError & e) {
|
||||
printMsg(lvlTalkative, "skipping derivation named '%1%' which gives an assertion failure", i.queryName());
|
||||
} catch (Error & e) {
|
||||
e.addTrace(std::nullopt, hintfmt("while querying the derivation named '%1%'", i.queryName()));
|
||||
e.addTrace(std::nullopt, "while querying the derivation named '%1%'", i.queryName());
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -216,7 +216,7 @@ struct CmdSearch : SourceExprCommand, MixJSON
|
|||
} catch (AssertionError & e) {
|
||||
} catch (Error & e) {
|
||||
if (!toplevel) {
|
||||
e.addTrace(std::nullopt, hintfmt("While evaluating the attribute '%s'", attrPath));
|
||||
e.addTrace(std::nullopt, "While evaluating the attribute '%s'", attrPath);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue