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

Function getDefaultConstructSignatures

test/fixtures/snapshot/typescript.js:58035–58061  ·  view source on GitHub ↗
(classType)

Source from the content-addressed store, hash-verified

58033 }
58034 }
58035 function getDefaultConstructSignatures(classType) {
58036 var baseConstructorType = getBaseConstructorTypeOfClass(classType);
58037 var baseSignatures = getSignaturesOfType(baseConstructorType, 1 /* SignatureKind.Construct */);
58038 var declaration = ts.getClassLikeDeclarationOfSymbol(classType.symbol);
58039 var isAbstract = !!declaration && ts.hasSyntacticModifier(declaration, 128 /* ModifierFlags.Abstract */);
58040 if (baseSignatures.length === 0) {
58041 return [createSignature(undefined, classType.localTypeParameters, undefined, ts.emptyArray, classType, /*resolvedTypePredicate*/ undefined, 0, isAbstract ? 4 /* SignatureFlags.Abstract */ : 0 /* SignatureFlags.None */)];
58042 }
58043 var baseTypeNode = getBaseTypeNodeOfClass(classType);
58044 var isJavaScript = ts.isInJSFile(baseTypeNode);
58045 var typeArguments = typeArgumentsFromTypeReferenceNode(baseTypeNode);
58046 var typeArgCount = ts.length(typeArguments);
58047 var result = [];
58048 for (var _i = 0, baseSignatures_1 = baseSignatures; _i < baseSignatures_1.length; _i++) {
58049 var baseSig = baseSignatures_1[_i];
58050 var minTypeArgumentCount = getMinTypeArgumentCount(baseSig.typeParameters);
58051 var typeParamCount = ts.length(baseSig.typeParameters);
58052 if (isJavaScript || typeArgCount >= minTypeArgumentCount && typeArgCount <= typeParamCount) {
58053 var sig = typeParamCount ? createSignatureInstantiation(baseSig, fillMissingTypeArguments(typeArguments, baseSig.typeParameters, minTypeArgumentCount, isJavaScript)) : cloneSignature(baseSig);
58054 sig.typeParameters = classType.localTypeParameters;
58055 sig.resolvedReturnType = classType;
58056 sig.flags = isAbstract ? sig.flags | 4 /* SignatureFlags.Abstract */ : sig.flags & ~4 /* SignatureFlags.Abstract */;
58057 result.push(sig);
58058 }
58059 }
58060 return result;
58061 }
58062 function findMatchingSignature(signatureList, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes) {
58063 for (var _i = 0, signatureList_1 = signatureList; _i < signatureList_1.length; _i++) {
58064 var s = signatureList_1[_i];

Callers 1

Calls 11

getSignaturesOfTypeFunction · 0.85
createSignatureFunction · 0.85
getBaseTypeNodeOfClassFunction · 0.85
getMinTypeArgumentCountFunction · 0.85
fillMissingTypeArgumentsFunction · 0.85
cloneSignatureFunction · 0.85
lengthMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected