1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-29 14:53:16 +02:00

Don't show "from call site" when we don't know the call site

This gets rid of stack trace entries like

       … from call site

       at «stdin»:0: (source not available)
This commit is contained in:
Eelco Dolstra 2022-09-28 17:01:16 +02:00
parent a291e37b20
commit c3c0682842
3 changed files with 9 additions and 4 deletions

View file

@ -1617,7 +1617,8 @@ void EvalState::callFunction(Value & fun, size_t nrArgs, Value * * args, Value &
(lambda.name
? concatStrings("'", symbols[lambda.name], "'")
: "anonymous lambda"));
addErrorTrace(e, pos, "from call site%s", "");
if (pos != noPos)
addErrorTrace(e, pos, "from call site", "");
}
throw;
}

View file

@ -52,7 +52,11 @@ public:
explicit operator bool() const { return id > 0; }
bool operator<(const PosIdx other) const { return id < other.id; }
bool operator <(const PosIdx other) const { return id < other.id; }
bool operator ==(const PosIdx other) const { return id == other.id; }
bool operator !=(const PosIdx other) const { return id != other.id; }
};
class PosTable

View file

@ -30,12 +30,12 @@ const std::string & BaseError::calcWhat() const
std::optional<std::string> ErrorInfo::programName = std::nullopt;
std::ostream & operator<<(std::ostream & os, const hintformat & hf)
std::ostream & operator <<(std::ostream & os, const hintformat & hf)
{
return os << hf.str();
}
std::ostream & operator << (std::ostream & str, const AbstractPos & pos)
std::ostream & operator <<(std::ostream & str, const AbstractPos & pos)
{
pos.print(str);
str << ":" << pos.line;