showtrace as function arg

This commit is contained in:
Ben Burdette 2020-06-27 12:19:31 -06:00
parent bc9e87412c
commit ef24a0835d
2 changed files with 7 additions and 5 deletions

View file

@ -34,7 +34,7 @@ const string& BaseError::calcWhat() const
}
std::optional<string> ErrorInfo::programName = std::nullopt;
bool ErrorInfo::showTrace = false;
// bool ErrorInfo::showTrace = false;
std::ostream& operator<<(std::ostream &os, const hintformat &hf)
{
@ -211,7 +211,8 @@ void printAtPos(const string &prefix, const ErrPos &pos, std::ostream &out)
}
}
std::ostream& operator<<(std::ostream &out, const ErrorInfo &einfo)
// std::ostream& operator<<(std::ostream &out, const ErrorInfo &einfo)
std::ostream& showErrorInfo(std::ostream &out, const ErrorInfo &einfo, bool showTrace)
{
auto errwidth = std::max<size_t>(getWindowSize().second, 20);
string prefix = "";
@ -326,7 +327,7 @@ std::ostream& operator<<(std::ostream &out, const ErrorInfo &einfo)
}
// traces
if (ErrorInfo::showTrace) {
if (showTrace) {
for (auto iter = einfo.traces.rbegin(); iter != einfo.traces.rend(); ++iter)
{
try {

View file

@ -107,10 +107,11 @@ struct ErrorInfo {
std::list<Trace> traces;
static std::optional<string> programName;
static bool showTrace;
// static bool showTrace;
};
std::ostream& operator<<(std::ostream &out, const ErrorInfo &einfo);
// std::ostream& operator<<(std::ostream &out, const ErrorInfo &einfo);
std::ostream& showErrorInfo(std::ostream &out, const ErrorInfo &einfo, bool showTrace);
/* BaseError should generally not be caught, as it has Interrupted as
a subclass. Catch Error instead. */