From dff6328c9eb9ff6be4580269d87dd5af7220c83f Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Thu, 23 Aug 2012 20:48:51 +0200 Subject: [PATCH] add 'X has been declared here:' too the too-few/many-parameters warning/error --- parser.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/parser.c b/parser.c index 5b84ac2..d382dd1 100644 --- a/parser.c +++ b/parser.c @@ -1000,23 +1000,31 @@ static bool parser_close_call(parser_t *parser, shunt *sy) if (opts_standard == COMPILER_GMQCC) { if (fval) - parseerror(parser, "too %s parameters for call to %s: expected %i, got %i", fewmany, - fval->name, (int)fun->expression.params_count, paramcount); + parseerror(parser, "too %s parameters for call to %s: expected %i, got %i\n" + " -> `%s` has been declared here: %s:%i", + fewmany, fval->name, (int)fun->expression.params_count, (int)paramcount, + fval->name, ast_ctx(fun).file, (int)ast_ctx(fun).line); else - parseerror(parser, "too %s parameters for function call: expected %i, got %i", fewmany, - (int)fun->expression.params_count, paramcount); + parseerror(parser, "too %s parameters for function call: expected %i, got %i\n" + " -> `%s` has been declared here: %s:%i", + fewmany, fval->name, (int)fun->expression.params_count, (int)paramcount, + fval->name, ast_ctx(fun).file, (int)ast_ctx(fun).line); return false; } else { if (fval) return !parsewarning(parser, WARN_TOO_FEW_PARAMETERS, - "too %s parameters for call to %s: expected %i, got %i", fewmany, - fval->name, (int)fun->expression.params_count, paramcount); + "too %s parameters for call to %s: expected %i, got %i\n" + " -> `%s` has been declared here: %s:%i", + fewmany, fval->name, (int)fun->expression.params_count, (int)paramcount, + fval->name, ast_ctx(fun).file, (int)ast_ctx(fun).line); else return !parsewarning(parser, WARN_TOO_FEW_PARAMETERS, - "too %s parameters for function call: expected %i, got %i", fewmany, - (int)fun->expression.params_count, paramcount); + "too %s parameters for function call: expected %i, got %i\n" + " -> `%s` has been declared here: %s:%i", + fewmany, fval->name, (int)fun->expression.params_count, (int)paramcount, + fval->name, ast_ctx(fun).file, (int)ast_ctx(fun).line); } } }