(chain *ast.Node)
| 133 | } |
| 134 | |
| 135 | func flattenChain(chain *ast.Node) flattenResult { |
| 136 | debug.Assert(!isNonNullChain(chain)) |
| 137 | links := []*ast.Node{chain} |
| 138 | for !ast.IsTaggedTemplateExpression(chain) && chain.QuestionDotToken() == nil { |
| 139 | chain = ast.SkipPartiallyEmittedExpressions(chain.Expression()) |
| 140 | debug.Assert(!isNonNullChain(chain)) |
| 141 | links = append([]*ast.Node{chain}, links...) |
| 142 | } |
| 143 | return flattenResult{chain.Expression(), links} |
| 144 | } |
| 145 | |
| 146 | func isCallChain(node *ast.Node) bool { |
| 147 | return ast.IsCallExpression(node) && node.Flags&ast.NodeFlagsOptionalChain != 0 |
no test coverage detected