From 99c5c096c5895aaec570dbe6a68094bd1b958bff Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 7 May 2020 11:08:02 -0700 Subject: [PATCH] Properly finalize evolving array type in getTypeAtFlowCall --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0872ee38e2b..e60afaeca66 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -20360,7 +20360,7 @@ namespace ts { const predicate = getTypePredicateOfSignature(signature); if (predicate && (predicate.kind === TypePredicateKind.AssertsThis || predicate.kind === TypePredicateKind.AssertsIdentifier)) { const flowType = getTypeAtFlowNode(flow.antecedent); - const type = getTypeFromFlowType(flowType); + const type = finalizeEvolvingArrayType(getTypeFromFlowType(flowType)); const narrowedType = predicate.type ? narrowTypeByTypePredicate(type, predicate, flow.node, /*assumeTrue*/ true) : predicate.kind === TypePredicateKind.AssertsIdentifier && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) : type;