Skip to content

Commit 9844436

Browse files
committed
Match control flow logic for switch statements to conditional expressions
1 parent 3a2f6a3 commit 9844436

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/compiler/checker.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15780,9 +15780,6 @@ namespace ts {
1578015780

1578115781
function getTypeAtSwitchClause(flow: FlowSwitchClause): FlowType {
1578215782
const expr = flow.switchStatement.expression;
15783-
if (containsMatchingReferenceDiscriminant(reference, expr)) {
15784-
return declaredType;
15785-
}
1578615783
const flowType = getTypeAtFlowNode(flow.antecedent);
1578715784
let type = getTypeFromFlowType(flowType);
1578815785
if (isMatchingReference(reference, expr)) {
@@ -15797,6 +15794,9 @@ namespace ts {
1579715794
else if (expr.kind === SyntaxKind.TypeOfExpression && isMatchingReference(reference, (expr as TypeOfExpression).expression)) {
1579815795
type = narrowBySwitchOnTypeOf(type, flow.switchStatement, flow.clauseStart, flow.clauseEnd);
1579915796
}
15797+
else if (containsMatchingReferenceDiscriminant(reference, expr)) {
15798+
type = declaredType;
15799+
}
1580015800
return createFlowType(type, isIncomplete(flowType));
1580115801
}
1580215802

0 commit comments

Comments
 (0)