(node *Node)
| 9 | type sumArray struct{} |
| 10 | |
| 11 | func (*sumArray) Visit(node *Node) { |
| 12 | if sumBuiltin, ok := (*node).(*BuiltinNode); ok && |
| 13 | sumBuiltin.Name == "sum" && |
| 14 | len(sumBuiltin.Arguments) == 1 { |
| 15 | if array, ok := sumBuiltin.Arguments[0].(*ArrayNode); ok && |
| 16 | len(array.Nodes) >= 2 { |
| 17 | patchCopyType(node, sumArrayFold(array)) |
| 18 | } |
| 19 | } |
| 20 | } |
| 21 | |
| 22 | func sumArrayFold(array *ArrayNode) *BinaryNode { |
| 23 | if len(array.Nodes) > 2 { |
nothing calls this directly
no test coverage detected