* Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise, * embedded arrays are flattened and the 'cbNode' callback is invoked for e
(node, cbNode, cbNodes)
| 30727 | * that they appear in the source code. The language service depends on this property to locate nodes by position. |
| 30728 | */ |
| 30729 | function forEachChild(node, cbNode, cbNodes) { |
| 30730 | if (!node || node.kind <= 160 /* SyntaxKind.LastToken */) { |
| 30731 | return; |
| 30732 | } |
| 30733 | switch (node.kind) { |
| 30734 | case 161 /* SyntaxKind.QualifiedName */: |
| 30735 | return visitNode(cbNode, node.left) || |
| 30736 | visitNode(cbNode, node.right); |
| 30737 | case 163 /* SyntaxKind.TypeParameter */: |
| 30738 | return visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30739 | visitNode(cbNode, node.name) || |
| 30740 | visitNode(cbNode, node.constraint) || |
| 30741 | visitNode(cbNode, node.default) || |
| 30742 | visitNode(cbNode, node.expression); |
| 30743 | case 297 /* SyntaxKind.ShorthandPropertyAssignment */: |
| 30744 | return visitNodes(cbNode, cbNodes, node.decorators) || |
| 30745 | visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30746 | visitNode(cbNode, node.name) || |
| 30747 | visitNode(cbNode, node.questionToken) || |
| 30748 | visitNode(cbNode, node.exclamationToken) || |
| 30749 | visitNode(cbNode, node.equalsToken) || |
| 30750 | visitNode(cbNode, node.objectAssignmentInitializer); |
| 30751 | case 298 /* SyntaxKind.SpreadAssignment */: |
| 30752 | return visitNode(cbNode, node.expression); |
| 30753 | case 164 /* SyntaxKind.Parameter */: |
| 30754 | return visitNodes(cbNode, cbNodes, node.decorators) || |
| 30755 | visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30756 | visitNode(cbNode, node.dotDotDotToken) || |
| 30757 | visitNode(cbNode, node.name) || |
| 30758 | visitNode(cbNode, node.questionToken) || |
| 30759 | visitNode(cbNode, node.type) || |
| 30760 | visitNode(cbNode, node.initializer); |
| 30761 | case 167 /* SyntaxKind.PropertyDeclaration */: |
| 30762 | return visitNodes(cbNode, cbNodes, node.decorators) || |
| 30763 | visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30764 | visitNode(cbNode, node.name) || |
| 30765 | visitNode(cbNode, node.questionToken) || |
| 30766 | visitNode(cbNode, node.exclamationToken) || |
| 30767 | visitNode(cbNode, node.type) || |
| 30768 | visitNode(cbNode, node.initializer); |
| 30769 | case 166 /* SyntaxKind.PropertySignature */: |
| 30770 | return visitNodes(cbNode, cbNodes, node.decorators) || |
| 30771 | visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30772 | visitNode(cbNode, node.name) || |
| 30773 | visitNode(cbNode, node.questionToken) || |
| 30774 | visitNode(cbNode, node.type) || |
| 30775 | visitNode(cbNode, node.initializer); |
| 30776 | case 296 /* SyntaxKind.PropertyAssignment */: |
| 30777 | return visitNodes(cbNode, cbNodes, node.decorators) || |
| 30778 | visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30779 | visitNode(cbNode, node.name) || |
| 30780 | visitNode(cbNode, node.questionToken) || |
| 30781 | visitNode(cbNode, node.initializer); |
| 30782 | case 254 /* SyntaxKind.VariableDeclaration */: |
| 30783 | return visitNodes(cbNode, cbNodes, node.decorators) || |
| 30784 | visitNodes(cbNode, cbNodes, node.modifiers) || |
| 30785 | visitNode(cbNode, node.name) || |
| 30786 | visitNode(cbNode, node.exclamationToken) || |
no test coverage detected
searching dependent graphs…