aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/eval.cc
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2020-04-16 12:32:07 +0200
committerDomen Kožar <domen@dev.si>2020-04-16 12:32:07 +0200
commitb865b5b40c13cfff32e1a0ab685baff1bef5ae5d (patch)
tree32589e07f4e3683e7ddab5984ddd93bf218619d2 /src/libexpr/eval.cc
parent2f9789c2e668056898639781eb31544c0e5c765b (diff)
pass Pos to forceValue to improve infinite recursion error
Diffstat (limited to 'src/libexpr/eval.cc')
-rw-r--r--src/libexpr/eval.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index f963a42ca..3b4d9bfdc 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -1502,7 +1502,7 @@ NixFloat EvalState::forceFloat(Value & v, const Pos & pos)
bool EvalState::forceBool(Value & v, const Pos & pos)
{
- forceValue(v);
+ forceValue(v, pos);
if (v.type != tBool)
throwTypeError("value is %1% while a Boolean was expected, at %2%", v, pos);
return v.boolean;
@@ -1517,7 +1517,7 @@ bool EvalState::isFunctor(Value & fun)
void EvalState::forceFunction(Value & v, const Pos & pos)
{
- forceValue(v);
+ forceValue(v, pos);
if (v.type != tLambda && v.type != tPrimOp && v.type != tPrimOpApp && !isFunctor(v))
throwTypeError("value is %1% while a function was expected, at %2%", v, pos);
}
@@ -1594,7 +1594,7 @@ std::optional<string> EvalState::tryAttrsToString(const Pos & pos, Value & v,
string EvalState::coerceToString(const Pos & pos, Value & v, PathSet & context,
bool coerceMore, bool copyToStore)
{
- forceValue(v);
+ forceValue(v, pos);
string s;