From a8a8826f69f8caad309fd702a2d237047bee3224 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 4 Jul 2016 20:27:59 -0700 Subject: [PATCH] Exclude FlowSwitchClause from flow graph for case expressions --- src/compiler/binder.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index b45af24d4d1..b7852a64d04 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -551,6 +551,9 @@ namespace ts { case SyntaxKind.CaseBlock: bindCaseBlock(node); break; + case SyntaxKind.CaseClause: + bindCaseClause(node); + break; case SyntaxKind.LabeledStatement: bindLabeledStatement(node); break; @@ -989,6 +992,14 @@ namespace ts { } } + function bindCaseClause(node: CaseClause): void { + const saveCurrentFlow = currentFlow; + currentFlow = preSwitchCaseFlow; + bind(node.expression); + currentFlow = saveCurrentFlow; + forEach(node.statements, bind); + } + function pushActiveLabel(name: string, breakTarget: FlowLabel, continueTarget: FlowLabel): ActiveLabel { const activeLabel = { name,