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

Function getEffectsSignature

test/fixtures/snapshot/typescript.js:70120–70147  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

70118 }
70119 }
70120 function getEffectsSignature(node) {
70121 var links = getNodeLinks(node);
70122 var signature = links.effectsSignature;
70123 if (signature === undefined) {
70124 // A call expression parented by an expression statement is a potential assertion. Other call
70125 // expressions are potential type predicate function calls. In order to avoid triggering
70126 // circularities in control flow analysis, we use getTypeOfDottedName when resolving the call
70127 // target expression of an assertion.
70128 var funcType = void 0;
70129 if (node.parent.kind === 238 /* SyntaxKind.ExpressionStatement */) {
70130 funcType = getTypeOfDottedName(node.expression, /*diagnostic*/ undefined);
70131 }
70132 else if (node.expression.kind !== 106 /* SyntaxKind.SuperKeyword */) {
70133 if (ts.isOptionalChain(node)) {
70134 funcType = checkNonNullType(getOptionalExpressionType(checkExpression(node.expression), node.expression), node.expression);
70135 }
70136 else {
70137 funcType = checkNonNullExpression(node.expression);
70138 }
70139 }
70140 var signatures = getSignaturesOfType(funcType && getApparentType(funcType) || unknownType, 0 /* SignatureKind.Call */);
70141 var candidate = signatures.length === 1 && !signatures[0].typeParameters ? signatures[0] :
70142 ts.some(signatures, hasTypePredicateOrNeverReturnType) ? getResolvedSignature(node) :
70143 undefined;
70144 signature = links.effectsSignature = candidate && hasTypePredicateOrNeverReturnType(candidate) ? candidate : unknownSignature;
70145 }
70146 return signature === unknownSignature ? undefined : signature;
70147 }
70148 function hasTypePredicateOrNeverReturnType(signature) {
70149 return !!(getTypePredicateOfSignature(signature) ||
70150 signature.declaration && (getReturnTypeFromAnnotation(signature.declaration) || unknownType).flags & 131072 /* TypeFlags.Never */);

Callers 4

getTypeAtFlowCallFunction · 0.85
checkCallExpressionFunction · 0.85

Calls 11

getNodeLinksFunction · 0.85
getTypeOfDottedNameFunction · 0.85
checkNonNullTypeFunction · 0.85
checkNonNullExpressionFunction · 0.85
getSignaturesOfTypeFunction · 0.85
getApparentTypeFunction · 0.85
getResolvedSignatureFunction · 0.85
someMethod · 0.80
checkExpressionFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…