From 2324ee4891d3c9808118305747c5cf79b2a1958f Mon Sep 17 00:00:00 2001 From: regnat Date: Wed, 9 Jun 2021 18:49:38 +0200 Subject: [PATCH] Add a ugly hack to delay errors in getFields --- src/libexpr/eval.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index c659b513a..93c130284 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -1316,8 +1316,15 @@ std::vector EvalState::getFields(Value & attrs, const Pos & pos) everythingCached = false; break; } - } catch (Error &) { - everythingCached = false; + } catch (EvalError & e) { + // XXX: Ugly hack to hide the error + newValue->mkThunk( + &baseEnv, + new ExprApp( + parseExprFromString("throw", "/"), + new ExprString(symbols.create(e.what())) + ) + ); } } if (everythingCached) return res;