correctly recognize captured loop variables in destructuring assignment

This commit is contained in:
Vladimir Matveev
2016-03-10 09:59:09 -08:00
parent f06423bffc
commit 7344d9ca47
5 changed files with 155 additions and 4 deletions

View File

@@ -7474,11 +7474,10 @@ namespace ts {
// check if node is used as LHS in some assignment expression
let isAssigned = false;
if (current.parent.kind === SyntaxKind.BinaryExpression) {
isAssigned = (<BinaryExpression>current.parent).left === current && isAssignmentOperator((<BinaryExpression>current.parent).operatorToken.kind);
if (isAssignmentTarget(current)) {
isAssigned = true;
}
if ((current.parent.kind === SyntaxKind.PrefixUnaryExpression || current.parent.kind === SyntaxKind.PostfixUnaryExpression)) {
else if ((current.parent.kind === SyntaxKind.PrefixUnaryExpression || current.parent.kind === SyntaxKind.PostfixUnaryExpression)) {
const expr = <PrefixUnaryExpression | PostfixUnaryExpression>current.parent;
isAssigned = expr.operator === SyntaxKind.PlusPlusToken || expr.operator === SyntaxKind.MinusMinusToken;
}