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

Function getMinArgumentCount

test/fixtures/snapshot/typescript.js:77604–77638  ·  view source on GitHub ↗
(signature, flags)

Source from the content-addressed store, hash-verified

77602 return length;
77603 }
77604 function getMinArgumentCount(signature, flags) {
77605 var strongArityForUntypedJS = flags & 1 /* MinArgumentCountFlags.StrongArityForUntypedJS */;
77606 var voidIsNonOptional = flags & 2 /* MinArgumentCountFlags.VoidIsNonOptional */;
77607 if (voidIsNonOptional || signature.resolvedMinArgumentCount === undefined) {
77608 var minArgumentCount = void 0;
77609 if (signatureHasRestParameter(signature)) {
77610 var restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);
77611 if (isTupleType(restType)) {
77612 var firstOptionalIndex = ts.findIndex(restType.target.elementFlags, function (f) { return !(f & 1 /* ElementFlags.Required */); });
77613 var requiredCount = firstOptionalIndex < 0 ? restType.target.fixedLength : firstOptionalIndex;
77614 if (requiredCount > 0) {
77615 minArgumentCount = signature.parameters.length - 1 + requiredCount;
77616 }
77617 }
77618 }
77619 if (minArgumentCount === undefined) {
77620 if (!strongArityForUntypedJS && signature.flags & 32 /* SignatureFlags.IsUntypedSignatureInJSFile */) {
77621 return 0;
77622 }
77623 minArgumentCount = signature.minArgumentCount;
77624 }
77625 if (voidIsNonOptional) {
77626 return minArgumentCount;
77627 }
77628 for (var i = minArgumentCount - 1; i >= 0; i--) {
77629 var type = getTypeAtPosition(signature, i);
77630 if (filterType(type, acceptsVoid).flags & 131072 /* TypeFlags.Never */) {
77631 break;
77632 }
77633 minArgumentCount = i;
77634 }
77635 signature.resolvedMinArgumentCount = minArgumentCount;
77636 }
77637 return signature.resolvedMinArgumentCount;
77638 }
77639 function hasEffectiveRestParameter(signature) {
77640 if (signatureHasRestParameter(signature)) {
77641 var restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);

Callers 10

combineUnionParametersFunction · 0.85
isOptionalParameterFunction · 0.85
compareSignaturesRelatedFunction · 0.85
isMatchingSignatureFunction · 0.85
hasPropFunction · 0.85
hasCorrectArityFunction · 0.85
getArgumentArityErrorFunction · 0.85
getRestTypeAtPositionFunction · 0.85

Calls 5

getTypeOfSymbolFunction · 0.85
isTupleTypeFunction · 0.85
getTypeAtPositionFunction · 0.85
filterTypeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…