don't boost::to_few_args when an eval cached string type errors

Change-Id: Id3cb762622e156ceaf9d5bb95c2c704ffe474d0e
This commit is contained in:
Qyriad 2024-04-10 18:30:12 -06:00
parent 5ecef3e133
commit b2f8c40948

View file

@ -576,8 +576,9 @@ std::string AttrCursor::getString()
auto & v = forceValue(); auto & v = forceValue();
if (v.type() != nString && v.type() != nPath) if (v.type() != nString && v.type() != nPath) {
root->state.error<TypeError>("'%s' is not a string but %s", getAttrPathStr()).debugThrow(); root->state.error<TypeError>("'%s' is not a string but %s", getAttrPathStr(), v.type()).debugThrow();
}
return v.type() == nString ? v.string.s : v.path().to_string(); return v.type() == nString ? v.string.s : v.path().to_string();
} }
@ -622,11 +623,11 @@ string_t AttrCursor::getStringWithContext()
NixStringContext context; NixStringContext context;
copyContext(v, context); copyContext(v, context);
return {v.string.s, std::move(context)}; return {v.string.s, std::move(context)};
} } else if (v.type() == nPath) {
else if (v.type() == nPath)
return {v.path().to_string(), {}}; return {v.path().to_string(), {}};
else } else {
root->state.error<TypeError>("'%s' is not a string but %s", getAttrPathStr()).debugThrow(); root->state.error<TypeError>("'%s' is not a string but %s", getAttrPathStr(), v.type()).debugThrow();
}
} }
bool AttrCursor::getBool() bool AttrCursor::getBool()