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

Function getExpandedParameters

test/fixtures/snapshot/typescript.js:58006–58034  ·  view source on GitHub ↗
(sig, skipUnionExpanding)

Source from the content-addressed store, hash-verified

58004 return result;
58005 }
58006 function getExpandedParameters(sig, skipUnionExpanding) {
58007 if (signatureHasRestParameter(sig)) {
58008 var restIndex_1 = sig.parameters.length - 1;
58009 var restType = getTypeOfSymbol(sig.parameters[restIndex_1]);
58010 if (isTupleType(restType)) {
58011 return [expandSignatureParametersWithTupleMembers(restType, restIndex_1)];
58012 }
58013 else if (!skipUnionExpanding && restType.flags & 1048576 /* TypeFlags.Union */ && ts.every(restType.types, isTupleType)) {
58014 return ts.map(restType.types, function (t) { return expandSignatureParametersWithTupleMembers(t, restIndex_1); });
58015 }
58016 }
58017 return [sig.parameters];
58018 function expandSignatureParametersWithTupleMembers(restType, restIndex) {
58019 var elementTypes = getTypeArguments(restType);
58020 var associatedNames = restType.target.labeledElementDeclarations;
58021 var restParams = ts.map(elementTypes, function (t, i) {
58022 // Lookup the label from the individual tuple passed in before falling back to the signature `rest` parameter name
58023 var tupleLabelName = !!associatedNames && getTupleElementLabel(associatedNames[i]);
58024 var name = tupleLabelName || getParameterNameAtPosition(sig, restIndex + i, restType);
58025 var flags = restType.target.elementFlags[i];
58026 var checkFlags = flags & 12 /* ElementFlags.Variable */ ? 32768 /* CheckFlags.RestParameter */ :
58027 flags & 2 /* ElementFlags.Optional */ ? 16384 /* CheckFlags.OptionalParameter */ : 0;
58028 var symbol = createSymbol(1 /* SymbolFlags.FunctionScopedVariable */, name, checkFlags);
58029 symbol.type = flags & 4 /* ElementFlags.Rest */ ? createArrayType(t) : t;
58030 return symbol;
58031 });
58032 return ts.concatenate(sig.parameters.slice(0, restIndex), restParams);
58033 }
58034 }
58035 function getDefaultConstructSignatures(classType) {
58036 var baseConstructorType = getBaseConstructorTypeOfClass(classType);
58037 var baseSignatures = getSignaturesOfType(baseConstructorType, 1 /* SignatureKind.Construct */);

Callers 1

Calls 6

getTypeOfSymbolFunction · 0.85
isTupleTypeFunction · 0.85
everyMethod · 0.80
mapMethod · 0.65

Tested by

no test coverage detected