(node)
| 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 */); |
no test coverage detected
searching dependent graphs…