MCPcopy Create free account
hub / github.com/microsoft/typescript-go / bindChildren

Method bindChildren

internal/binder/binder.go:1645–1742  ·  view source on GitHub ↗
(node *ast.Node)

Source from the content-addressed store, hash-verified

1643}
1644
1645func (b *Binder) bindChildren(node *ast.Node) {
1646 saveInAssignmentPattern := b.inAssignmentPattern
1647 // Most nodes aren't valid in an assignment pattern, so we clear the value here
1648 // and set it before we descend into nodes that could actually be part of an assignment pattern.
1649 b.inAssignmentPattern = false
1650
1651 if b.currentFlow == b.unreachableFlow {
1652 if flowNodeData := node.FlowNodeData(); flowNodeData != nil {
1653 flowNodeData.FlowNode = nil
1654 }
1655 if ast.IsPotentiallyExecutableNode(node) {
1656 node.Flags |= ast.NodeFlagsUnreachable
1657 }
1658 b.bindEachChild(node)
1659 b.inAssignmentPattern = saveInAssignmentPattern
1660 return
1661 }
1662
1663 if ast.KindFirstStatement <= node.Kind && node.Kind <= ast.KindLastStatement {
1664 if flowNodeData := node.FlowNodeData(); flowNodeData != nil {
1665 flowNodeData.FlowNode = b.currentFlow
1666 }
1667 }
1668
1669 switch node.Kind {
1670 case ast.KindWhileStatement:
1671 b.bindWhileStatement(node)
1672 case ast.KindDoStatement:
1673 b.bindDoStatement(node)
1674 case ast.KindForStatement:
1675 b.bindForStatement(node)
1676 case ast.KindForInStatement, ast.KindForOfStatement:
1677 b.bindForInOrForOfStatement(node)
1678 case ast.KindIfStatement:
1679 b.bindIfStatement(node)
1680 case ast.KindReturnStatement:
1681 b.bindReturnStatement(node)
1682 case ast.KindThrowStatement:
1683 b.bindThrowStatement(node)
1684 case ast.KindBreakStatement:
1685 b.bindBreakStatement(node)
1686 case ast.KindContinueStatement:
1687 b.bindContinueStatement(node)
1688 case ast.KindTryStatement:
1689 b.bindTryStatement(node)
1690 case ast.KindSwitchStatement:
1691 b.bindSwitchStatement(node)
1692 case ast.KindCaseBlock:
1693 b.bindCaseBlock(node)
1694 case ast.KindCaseClause, ast.KindDefaultClause:
1695 b.bindCaseOrDefaultClause(node)
1696 case ast.KindExpressionStatement:
1697 b.bindExpressionStatement(node)
1698 case ast.KindLabeledStatement:
1699 b.bindLabeledStatement(node)
1700 case ast.KindPrefixUnaryExpression:
1701 b.bindPrefixUnaryExpressionFlow(node)
1702 case ast.KindPostfixUnaryExpression:

Callers 2

bindMethod · 0.95
bindContainerMethod · 0.95

Calls 15

bindEachChildMethod · 0.95
bindWhileStatementMethod · 0.95
bindDoStatementMethod · 0.95
bindForStatementMethod · 0.95
bindIfStatementMethod · 0.95
bindReturnStatementMethod · 0.95
bindThrowStatementMethod · 0.95
bindBreakStatementMethod · 0.95
bindContinueStatementMethod · 0.95
bindTryStatementMethod · 0.95
bindSwitchStatementMethod · 0.95

Tested by

no test coverage detected