MCPcopy Index your code
hub / github.com/nodejs/node / getArgumentArityError

Function getArgumentArityError

test/fixtures/snapshot/typescript.js:75950–76017  ·  view source on GitHub ↗
(node, signatures, args)

Source from the content-addressed store, hash-verified

75948 return constructorSymbol === globalPromiseSymbol;
75949 }
75950 function getArgumentArityError(node, signatures, args) {
75951 var _a;
75952 var spreadIndex = getSpreadArgumentIndex(args);
75953 if (spreadIndex > -1) {
75954 return ts.createDiagnosticForNode(args[spreadIndex], ts.Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);
75955 }
75956 var min = Number.POSITIVE_INFINITY; // smallest parameter count
75957 var max = Number.NEGATIVE_INFINITY; // largest parameter count
75958 var maxBelow = Number.NEGATIVE_INFINITY; // largest parameter count that is smaller than the number of arguments
75959 var minAbove = Number.POSITIVE_INFINITY; // smallest parameter count that is larger than the number of arguments
75960 var closestSignature;
75961 for (var _i = 0, signatures_8 = signatures; _i < signatures_8.length; _i++) {
75962 var sig = signatures_8[_i];
75963 var minParameter = getMinArgumentCount(sig);
75964 var maxParameter = getParameterCount(sig);
75965 // smallest/largest parameter counts
75966 if (minParameter < min) {
75967 min = minParameter;
75968 closestSignature = sig;
75969 }
75970 max = Math.max(max, maxParameter);
75971 // shortest parameter count *longer than the call*/longest parameter count *shorter than the call*
75972 if (minParameter < args.length && minParameter > maxBelow)
75973 maxBelow = minParameter;
75974 if (args.length < maxParameter && maxParameter < minAbove)
75975 minAbove = maxParameter;
75976 }
75977 var hasRestParameter = ts.some(signatures, hasEffectiveRestParameter);
75978 var parameterRange = hasRestParameter ? min
75979 : min < max ? min + "-" + max
75980 : min;
75981 var isVoidPromiseError = !hasRestParameter && parameterRange === 1 && args.length === 0 && isPromiseResolveArityError(node);
75982 if (isVoidPromiseError && ts.isInJSFile(node)) {
75983 return getDiagnosticForCallNode(node, ts.Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments);
75984 }
75985 var error = hasRestParameter
75986 ? ts.Diagnostics.Expected_at_least_0_arguments_but_got_1
75987 : isVoidPromiseError
75988 ? ts.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise
75989 : ts.Diagnostics.Expected_0_arguments_but_got_1;
75990 if (min < args.length && args.length < max) {
75991 // between min and max, but with no matching overload
75992 return getDiagnosticForCallNode(node, ts.Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, args.length, maxBelow, minAbove);
75993 }
75994 else if (args.length < min) {
75995 // too short: put the error span on the call expression, not any of the args
75996 var diagnostic = getDiagnosticForCallNode(node, error, parameterRange, args.length);
75997 var parameter = (_a = closestSignature === null || closestSignature === void 0 ? void 0 : closestSignature.declaration) === null || _a === void 0 ? void 0 : _a.parameters[closestSignature.thisParameter ? args.length + 1 : args.length];
75998 if (parameter) {
75999 var parameterError = ts.createDiagnosticForNode(parameter, ts.isBindingPattern(parameter.name) ? ts.Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided
76000 : ts.isRestParameter(parameter) ? ts.Diagnostics.Arguments_for_the_rest_parameter_0_were_not_provided
76001 : ts.Diagnostics.An_argument_for_0_was_not_provided, !parameter.name ? args.length : !ts.isBindingPattern(parameter.name) ? ts.idText(ts.getFirstIdentifier(parameter.name)) : undefined);
76002 return ts.addRelatedInfo(diagnostic, parameterError);
76003 }
76004 return diagnostic;
76005 }
76006 else {
76007 // too long; error goes on the excess parameters

Callers 1

resolveCallFunction · 0.85

Calls 10

getSpreadArgumentIndexFunction · 0.85
getMinArgumentCountFunction · 0.85
getParameterCountFunction · 0.85
getDiagnosticForCallNodeFunction · 0.85
someMethod · 0.80
sliceMethod · 0.65
maxMethod · 0.45
firstMethod · 0.45
lastMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…