about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-11-25T09·23+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-11-25T09·23+0100
commit4e340a983f928973d3915455d46a4bbadbc3269c (patch)
tree9e6982a87e3293f1e48a66a4d2db13e8db89fcca
parent976b949e4d194c242c6024bbaa65f4f3b3620225 (diff)
forceString(): Accept pos argument
-rw-r--r--src/libexpr/eval.cc4
-rw-r--r--src/libexpr/eval.hh2
-rw-r--r--src/libexpr/primops.cc4
3 files changed, 5 insertions, 5 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 81774974a90c..ebb28021c180 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -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);
     return s;
 }
diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh
index d066f7fd5815..8bf65c2c55de 100644
--- a/src/libexpr/eval.hh
+++ b/src/libexpr/eval.hh
@@ -200,7 +200,7 @@ public:
     inline void forceList(Value & v, const Pos & pos);
     void forceFunction(Value & v, const Pos & pos); // either lambda or primop
     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);
 
     /* Return true iff the value `v' denotes a derivation (i.e. a
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index e6edffa46659..ed50c8091b88 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -870,7 +870,7 @@ static void prim_toFile(EvalState & state, const Pos & pos, Value * * args, Valu
 {
     PathSet context;
     string name = state.forceStringNoCtx(*args[0], pos);
-    string contents = state.forceString(*args[1], context);
+    string contents = state.forceString(*args[1], context, pos);
 
     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);
 
     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);
 };