diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-05-16T17·08+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-05-16T17·08+0200 |
commit | 18a48d80a0686ba81959057e8becc6272acd6c46 (patch) | |
tree | e3f1fabe22a2c2da63c0ea7880cedee6bdb55a87 /src/libexpr/nixexpr.hh | |
parent | 1b3a03f1610b714adca41637ccd85a8157e236ab (diff) |
Show function names in error messages
Functions in Nix are anonymous, but if they're assigned to a variable/attribute, we can use the variable/attribute name in error messages, e.g. while evaluating `concatMapStrings' at `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/strings.nix:18:25': ...
Diffstat (limited to 'src/libexpr/nixexpr.hh')
-rw-r--r-- | src/libexpr/nixexpr.hh | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh index 86a7bfd506a0..8256605b5cac 100644 --- a/src/libexpr/nixexpr.hh +++ b/src/libexpr/nixexpr.hh @@ -63,6 +63,7 @@ struct Expr virtual void bindVars(const StaticEnv & env); virtual void eval(EvalState & state, Env & env, Value & v); virtual Value * maybeThunk(EvalState & state, Env & env); + virtual void setName(Symbol & name); }; std::ostream & operator << (std::ostream & str, Expr & e); @@ -197,6 +198,7 @@ struct Formals struct ExprLambda : Expr { Pos pos; + Symbol name; Symbol arg; bool matchAttrs; Formals * formals; @@ -208,6 +210,8 @@ struct ExprLambda : Expr throw ParseError(format("duplicate formal function argument `%1%' at %2%") % arg % pos); }; + void setName(Symbol & name); + string showNamePos(); COMMON_METHODS }; |