(flow)
| 70499 | return narrowType(type, node, /*assumeTrue*/ true); |
| 70500 | } |
| 70501 | function getTypeAtFlowCall(flow) { |
| 70502 | var signature = getEffectsSignature(flow.node); |
| 70503 | if (signature) { |
| 70504 | var predicate = getTypePredicateOfSignature(signature); |
| 70505 | if (predicate && (predicate.kind === 2 /* TypePredicateKind.AssertsThis */ || predicate.kind === 3 /* TypePredicateKind.AssertsIdentifier */)) { |
| 70506 | var flowType = getTypeAtFlowNode(flow.antecedent); |
| 70507 | var type = finalizeEvolvingArrayType(getTypeFromFlowType(flowType)); |
| 70508 | var narrowedType = predicate.type ? narrowTypeByTypePredicate(type, predicate, flow.node, /*assumeTrue*/ true) : |
| 70509 | predicate.kind === 3 /* TypePredicateKind.AssertsIdentifier */ && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) : |
| 70510 | type; |
| 70511 | return narrowedType === type ? flowType : createFlowType(narrowedType, isIncomplete(flowType)); |
| 70512 | } |
| 70513 | if (getReturnTypeOfSignature(signature).flags & 131072 /* TypeFlags.Never */) { |
| 70514 | return unreachableNeverType; |
| 70515 | } |
| 70516 | } |
| 70517 | return undefined; |
| 70518 | } |
| 70519 | function getTypeAtFlowArrayMutation(flow) { |
| 70520 | if (declaredType === autoType || declaredType === autoArrayType) { |
| 70521 | var node = flow.node; |
no test coverage detected
searching dependent graphs…