From effa2597fa89ddca314f25e81c68ab848492e003 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 30 Aug 2017 16:22:16 -0700 Subject: [PATCH] Cache contextual type for || operator to avoid exponential compile time --- 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 ea88fd2a4b3..a73a29d648d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -13059,7 +13059,7 @@ namespace ts { // expression has no contextual type, the right operand is contextually typed by the type of the left operand. let type = getContextualType(binaryExpression); if (!type && node === binaryExpression.right) { - type = getTypeOfExpression(binaryExpression.left); + type = getTypeOfExpression(binaryExpression.left, /*cache*/ true); } return type; }