aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/value-to-json.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/value-to-json.cc')
-rw-r--r--src/libexpr/value-to-json.cc12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/libexpr/value-to-json.cc b/src/libexpr/value-to-json.cc
index 1c3849593..4d642c720 100644
--- a/src/libexpr/value-to-json.cc
+++ b/src/libexpr/value-to-json.cc
@@ -40,7 +40,7 @@ void printValueAsJSON(EvalState & state, bool strict,
break;
case nAttrs: {
- auto maybeString = state.tryAttrsToString(noPos, v, context, false, false);
+ auto maybeString = state.tryAttrsToString(pos, v, context, false, false);
if (maybeString) {
out.write(*maybeString);
break;
@@ -79,16 +79,12 @@ void printValueAsJSON(EvalState & state, bool strict,
break;
case nThunk:
- throw TypeError({
- .msg = hintfmt("cannot convert %1% to JSON", showType(v)),
- .errPos = pos
- });
-
case nFunction:
- throw TypeError({
+ auto e = TypeError({
.msg = hintfmt("cannot convert %1% to JSON", showType(v)),
- .errPos = pos
+ .errPos = v.determinePos(pos)
});
+ throw e.addTrace(pos, hintfmt("message for the trace"));
}
}