libexpr: findDerivationFilename return Pos instead of tuple

This commit is contained in:
zimbatm
2019-10-28 21:29:54 +01:00
parent 59c7249769
commit ec448f8bb6
4 changed files with 13 additions and 11 deletions
+5 -3
View File
@@ -93,7 +93,7 @@ Value * findAlongAttrPath(EvalState & state, const string & attrPath,
}
std::tuple<std::string, int> findDerivationFilename(EvalState & state, Value & v, std::string what)
Pos findDerivationFilename(EvalState & state, Value & v, std::string what)
{
Value * v2;
try {
@@ -110,14 +110,16 @@ std::tuple<std::string, int> findDerivationFilename(EvalState & state, Value & v
throw Error("cannot parse meta.position attribute '%s'", pos);
std::string filename(pos, 0, colon);
int lineno;
unsigned int lineno;
try {
lineno = std::stoi(std::string(pos, colon + 1));
} catch (std::invalid_argument & e) {
throw Error("cannot parse line number '%s'", pos);
}
return std::make_tuple(filename, lineno);
Symbol file = state.symbols.create(filename);
return { file, lineno, 0 };
}