From ae3523dcc46c0de4823facc40196095c57b3214c Mon Sep 17 00:00:00 2001 From: Remy Suen Date: Wed, 21 Mar 2018 07:32:34 +0900 Subject: [PATCH] Output warning if unmatched arg name used in generator When making additions to the NodeGit API, it is necessary to make changes to the descriptor.json. Small typos can cause the generated code to not match the expected output. We should generate a warning if an argument name used in descriptor.json does not match the name in the C function. This will help make it a lot easier to discover problems in the handwritten descriptor.json file. Signed-off-by: Remy Suen --- generate/scripts/helpers.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/generate/scripts/helpers.js b/generate/scripts/helpers.js index 1effd02c7..a3a23152e 100644 --- a/generate/scripts/helpers.js +++ b/generate/scripts/helpers.js @@ -322,6 +322,20 @@ var Helpers = { } var argOverrides = fnOverrides.args || {}; + // loop over all the argument names explicitly written in descriptor.json + Object.keys(argOverrides).forEach(function(argOverride) { + // see if the argument names match a name in the C function + var found = fnDef.args.some(function(arg) { + return arg.name === argOverride; + }); + if (!found) { + console.log( + "Found non-matching argument named %s in descriptor.json for C function %s", + argOverride, + fnDef.cFunctionName + ); + } + }); fnDef.args.forEach(function(arg) { Helpers.decorateArg(arg, fnDef.args, typeDef, fnDef, argOverrides[arg.name] || {}, enums);