From fb1e928af551261fdfc81ccaaf0cc5662f29829c Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Mon, 1 Jan 2018 12:32:32 +0000 Subject: [PATCH] Fix null termination, add ddoc --- src/dmd/func.d | 8 +++++++- src/dmd/hdrgen.d | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/dmd/func.d b/src/dmd/func.d index 8393d03d28e3..9e06cd01d05a 100644 --- a/src/dmd/func.d +++ b/src/dmd/func.d @@ -3621,6 +3621,12 @@ extern (C++) final class DeleteDeclaration : FuncDeclaration } } +/** Show supplemental error message for a function call with mismatched arguments. + * Params: + * loc = line information for error message + * fargs = arguments to function + * tf = function called + * failIndex = index of first argument mismatch */ void showArgMismatch(Loc loc, Expressions* fargs, TypeFunction tf, size_t failIndex) { if (failIndex < fargs.dim && failIndex < tf.parameters.dim) @@ -3633,7 +3639,7 @@ void showArgMismatch(Loc loc, Expressions* fargs, TypeFunction tf, size_t failIn auto msg = "cannot pass %sargument `%s` of type `%s` to parameter `%s`"; // don't print parameter type if it's already in the parameter string if (strcmp(par.type.toChars(), ts[1]) != 0) - msg ~= " of type `%s`"; + msg ~= " of type `%s`\0"; errorSupplemental(loc, msg.ptr, rv.ptr, arg.toChars(), ts[0], pc, ts[1]); } diff --git a/src/dmd/hdrgen.d b/src/dmd/hdrgen.d index ec8fa855c4e9..ef116338d38e 100644 --- a/src/dmd/hdrgen.d +++ b/src/dmd/hdrgen.d @@ -3425,6 +3425,11 @@ extern (C++) void arrayObjectsToBuffer(OutBuffer* buf, Objects* objects) } } +/** Pretty print function parameters. + * Params: + * parameters = parameters to print, such as TypeFunction.parameters. + * varargs = Kind of varargs, see TypeFunction.varargs. + * Returns: NT string representing parameters. */ extern (C++) const(char)* parametersTypeToChars(Parameters* parameters, int varargs) { OutBuffer buf; @@ -3434,6 +3439,11 @@ extern (C++) const(char)* parametersTypeToChars(Parameters* parameters, int vara return buf.extractString(); } +/** Pretty print function parameters. + * Params: + * parameter = parameter to print. + * varargs = Kind of varargs, see TypeFunction.varargs. + * Returns: NT string representing parameter. */ extern (C++) const(char)* parameterToChars(Parameter parameter, int varargs) { OutBuffer buf;