(signature, flags)
| 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]); |
no test coverage detected
searching dependent graphs…