@@ -882,11 +882,11 @@ namespace ts {
882882 }
883883
884884 function isNarrowableReference ( expr : Expression ) : boolean {
885- return expr . kind === SyntaxKind . Identifier || expr . kind === SyntaxKind . PrivateIdentifier || expr . kind === SyntaxKind . ThisKeyword || expr . kind === SyntaxKind . SuperKeyword ||
886- ( isPropertyAccessExpression ( expr ) || isNonNullExpression ( expr ) || isParenthesizedExpression ( expr ) ) && isNarrowableReference ( expr . expression ) ||
887- isBinaryExpression ( expr ) && expr . operatorToken . kind === SyntaxKind . CommaToken && isNarrowableReference ( expr . right ) ||
888- isElementAccessExpression ( expr ) && isStringOrNumericLiteralLike ( expr . argumentExpression ) && isNarrowableReference ( expr . expression ) ||
889- isAssignmentExpression ( expr ) && isNarrowableReference ( expr . left ) ;
885+ return isDottedName ( expr )
886+ || ( isPropertyAccessExpression ( expr ) || isNonNullExpression ( expr ) || isParenthesizedExpression ( expr ) ) && isNarrowableReference ( expr . expression )
887+ || isBinaryExpression ( expr ) && expr . operatorToken . kind === SyntaxKind . CommaToken && isNarrowableReference ( expr . right )
888+ || isElementAccessExpression ( expr ) && isStringOrNumericLiteralLike ( expr . argumentExpression ) && isNarrowableReference ( expr . expression )
889+ || isAssignmentExpression ( expr ) && isNarrowableReference ( expr . left ) ;
890890 }
891891
892892 function containsNarrowableReference ( expr : Expression ) : boolean {
@@ -1369,7 +1369,7 @@ namespace ts {
13691369 // is potentially an assertion and is therefore included in the control flow.
13701370 if ( node . kind === SyntaxKind . CallExpression ) {
13711371 const call = < CallExpression > node ;
1372- if ( isDottedName ( call . expression ) && call . expression . kind !== SyntaxKind . SuperKeyword ) {
1372+ if ( call . expression . kind !== SyntaxKind . SuperKeyword && isDottedName ( call . expression ) ) {
13731373 currentFlow = createFlowCall ( currentFlow , call ) ;
13741374 }
13751375 }
@@ -2542,6 +2542,7 @@ namespace ts {
25422542 node . flowNode = currentFlow ;
25432543 }
25442544 break ;
2545+ case SyntaxKind . MetaProperty :
25452546 case SyntaxKind . SuperKeyword :
25462547 node . flowNode = currentFlow ;
25472548 break ;
0 commit comments