(node)
| 104753 | return visitorWorker(node, /*valueIsDiscarded*/ true); |
| 104754 | } |
| 104755 | function destructuringNeedsFlattening(node) { |
| 104756 | if (ts.isObjectLiteralExpression(node)) { |
| 104757 | for (var _i = 0, _a = node.properties; _i < _a.length; _i++) { |
| 104758 | var elem = _a[_i]; |
| 104759 | switch (elem.kind) { |
| 104760 | case 296 /* SyntaxKind.PropertyAssignment */: |
| 104761 | if (destructuringNeedsFlattening(elem.initializer)) { |
| 104762 | return true; |
| 104763 | } |
| 104764 | break; |
| 104765 | case 297 /* SyntaxKind.ShorthandPropertyAssignment */: |
| 104766 | if (destructuringNeedsFlattening(elem.name)) { |
| 104767 | return true; |
| 104768 | } |
| 104769 | break; |
| 104770 | case 298 /* SyntaxKind.SpreadAssignment */: |
| 104771 | if (destructuringNeedsFlattening(elem.expression)) { |
| 104772 | return true; |
| 104773 | } |
| 104774 | break; |
| 104775 | case 169 /* SyntaxKind.MethodDeclaration */: |
| 104776 | case 172 /* SyntaxKind.GetAccessor */: |
| 104777 | case 173 /* SyntaxKind.SetAccessor */: |
| 104778 | return false; |
| 104779 | default: ts.Debug.assertNever(elem, "Unhandled object member kind"); |
| 104780 | } |
| 104781 | } |
| 104782 | } |
| 104783 | else if (ts.isArrayLiteralExpression(node)) { |
| 104784 | for (var _b = 0, _c = node.elements; _b < _c.length; _b++) { |
| 104785 | var elem = _c[_b]; |
| 104786 | if (ts.isSpreadElement(elem)) { |
| 104787 | if (destructuringNeedsFlattening(elem.expression)) { |
| 104788 | return true; |
| 104789 | } |
| 104790 | } |
| 104791 | else if (destructuringNeedsFlattening(elem)) { |
| 104792 | return true; |
| 104793 | } |
| 104794 | } |
| 104795 | } |
| 104796 | else if (ts.isIdentifier(node)) { |
| 104797 | return ts.length(getExports(node)) > (ts.isExportName(node) ? 1 : 0); |
| 104798 | } |
| 104799 | return false; |
| 104800 | } |
| 104801 | function visitDestructuringAssignment(node, valueIsDiscarded) { |
| 104802 | if (destructuringNeedsFlattening(node.left)) { |
| 104803 | return ts.flattenDestructuringAssignment(node, visitor, context, 0 /* FlattenLevel.All */, !valueIsDiscarded, createAllExportExpressions); |
no test coverage detected