(node)
| 17058 | AssignmentKind[AssignmentKind["Compound"] = 2] = "Compound"; |
| 17059 | })(AssignmentKind = ts.AssignmentKind || (ts.AssignmentKind = {})); |
| 17060 | function getAssignmentTargetKind(node) { |
| 17061 | var parent = node.parent; |
| 17062 | while (true) { |
| 17063 | switch (parent.kind) { |
| 17064 | case 221 /* SyntaxKind.BinaryExpression */: |
| 17065 | var binaryOperator = parent.operatorToken.kind; |
| 17066 | return isAssignmentOperator(binaryOperator) && parent.left === node ? |
| 17067 | binaryOperator === 63 /* SyntaxKind.EqualsToken */ || isLogicalOrCoalescingAssignmentOperator(binaryOperator) ? 1 /* AssignmentKind.Definite */ : 2 /* AssignmentKind.Compound */ : |
| 17068 | 0 /* AssignmentKind.None */; |
| 17069 | case 219 /* SyntaxKind.PrefixUnaryExpression */: |
| 17070 | case 220 /* SyntaxKind.PostfixUnaryExpression */: |
| 17071 | var unaryOperator = parent.operator; |
| 17072 | return unaryOperator === 45 /* SyntaxKind.PlusPlusToken */ || unaryOperator === 46 /* SyntaxKind.MinusMinusToken */ ? 2 /* AssignmentKind.Compound */ : 0 /* AssignmentKind.None */; |
| 17073 | case 243 /* SyntaxKind.ForInStatement */: |
| 17074 | case 244 /* SyntaxKind.ForOfStatement */: |
| 17075 | return parent.initializer === node ? 1 /* AssignmentKind.Definite */ : 0 /* AssignmentKind.None */; |
| 17076 | case 212 /* SyntaxKind.ParenthesizedExpression */: |
| 17077 | case 204 /* SyntaxKind.ArrayLiteralExpression */: |
| 17078 | case 225 /* SyntaxKind.SpreadElement */: |
| 17079 | case 230 /* SyntaxKind.NonNullExpression */: |
| 17080 | node = parent; |
| 17081 | break; |
| 17082 | case 298 /* SyntaxKind.SpreadAssignment */: |
| 17083 | node = parent.parent; |
| 17084 | break; |
| 17085 | case 297 /* SyntaxKind.ShorthandPropertyAssignment */: |
| 17086 | if (parent.name !== node) { |
| 17087 | return 0 /* AssignmentKind.None */; |
| 17088 | } |
| 17089 | node = parent.parent; |
| 17090 | break; |
| 17091 | case 296 /* SyntaxKind.PropertyAssignment */: |
| 17092 | if (parent.name === node) { |
| 17093 | return 0 /* AssignmentKind.None */; |
| 17094 | } |
| 17095 | node = parent.parent; |
| 17096 | break; |
| 17097 | default: |
| 17098 | return 0 /* AssignmentKind.None */; |
| 17099 | } |
| 17100 | parent = node.parent; |
| 17101 | } |
| 17102 | } |
| 17103 | ts.getAssignmentTargetKind = getAssignmentTargetKind; |
| 17104 | // A node is an assignment target if it is on the left hand side of an '=' token, if it is parented by a property |
| 17105 | // assignment in an object literal that is an assignment target, or if it is parented by an array literal that is |
no test coverage detected