summaryrefslogtreecommitdiff
path: root/src/op.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/op.cc')
-rw-r--r--src/op.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/op.cc b/src/op.cc
index 0773c093..23f47f73 100644
--- a/src/op.cc
+++ b/src/op.cc
@@ -537,13 +537,13 @@ value_t expr_t::op_t::calc_call(scope_t& scope, ptr_op_t * locus,
ptr_op_t func = left();
string name = func->is_ident() ? func->as_ident() : "<value expr>";
- try {
- func = find_definition(func, scope, locus, depth);
+ func = find_definition(func, scope, locus, depth);
- call_scope_t call_args(scope, locus, depth + 1);
- if (has_right())
- call_args.set_args(split_cons_expr(right()));
+ call_scope_t call_args(scope, locus, depth + 1);
+ if (has_right())
+ call_args.set_args(split_cons_expr(right()));
+ try {
if (func->is_function()) {
return func->as_function()(call_args);
} else {
@@ -552,7 +552,8 @@ value_t expr_t::op_t::calc_call(scope_t& scope, ptr_op_t * locus,
}
}
catch (const std::exception&) {
- add_error_context(_("While calling function '%1':" << name));
+ add_error_context(_("While calling function '%1 %2':" << name
+ << call_args.args));
throw;
}
}