forceString(): Accept pos argument

This commit is contained in:
Eelco Dolstra 2014-11-25 10:23:36 +01:00
parent 976b949e4d
commit 4e340a983f
3 changed files with 5 additions and 5 deletions

View file

@ -1257,9 +1257,9 @@ void copyContext(const Value & v, PathSet & context)
} }
string EvalState::forceString(Value & v, PathSet & context) string EvalState::forceString(Value & v, PathSet & context, const Pos & pos)
{ {
string s = forceString(v); string s = forceString(v, pos);
copyContext(v, context); copyContext(v, context);
return s; return s;
} }

View file

@ -200,7 +200,7 @@ public:
inline void forceList(Value & v, const Pos & pos); inline void forceList(Value & v, const Pos & pos);
void forceFunction(Value & v, const Pos & pos); // either lambda or primop void forceFunction(Value & v, const Pos & pos); // either lambda or primop
string forceString(Value & v, const Pos & pos = noPos); string forceString(Value & v, const Pos & pos = noPos);
string forceString(Value & v, PathSet & context); string forceString(Value & v, PathSet & context, const Pos & pos = noPos);
string forceStringNoCtx(Value & v, const Pos & pos = noPos); string forceStringNoCtx(Value & v, const Pos & pos = noPos);
/* Return true iff the value `v' denotes a derivation (i.e. a /* Return true iff the value `v' denotes a derivation (i.e. a

View file

@ -870,7 +870,7 @@ static void prim_toFile(EvalState & state, const Pos & pos, Value * * args, Valu
{ {
PathSet context; PathSet context;
string name = state.forceStringNoCtx(*args[0], pos); string name = state.forceStringNoCtx(*args[0], pos);
string contents = state.forceString(*args[1], context); string contents = state.forceString(*args[1], context, pos);
PathSet refs; PathSet refs;
@ -1427,7 +1427,7 @@ static void prim_hashString(EvalState & state, const Pos & pos, Value * * args,
throw Error(format("unknown hash type %1%, at %2%") % type % pos); throw Error(format("unknown hash type %1%, at %2%") % type % pos);
PathSet context; // discarded PathSet context; // discarded
string s = state.forceString(*args[1], context); string s = state.forceString(*args[1], context, pos);
mkString(v, printHash(hashString(ht, s)), context); mkString(v, printHash(hashString(ht, s)), context);
}; };