(
expr: Expr,
operator: Operator,
mut exprs: Vec<Expr>,
)
| 1132 | } |
| 1133 | |
| 1134 | fn split_binary_owned_impl( |
| 1135 | expr: Expr, |
| 1136 | operator: Operator, |
| 1137 | mut exprs: Vec<Expr>, |
| 1138 | ) -> Vec<Expr> { |
| 1139 | match expr { |
| 1140 | Expr::BinaryExpr(BinaryExpr { right, op, left }) if op == operator => { |
| 1141 | let exprs = split_binary_owned_impl(*left, operator, exprs); |
| 1142 | split_binary_owned_impl(*right, operator, exprs) |
| 1143 | } |
| 1144 | Expr::Alias(Alias { expr, .. }) => { |
| 1145 | split_binary_owned_impl(*expr, operator, exprs) |
| 1146 | } |
| 1147 | other => { |
| 1148 | exprs.push(other); |
| 1149 | exprs |
| 1150 | } |
| 1151 | } |
| 1152 | } |
| 1153 | |
| 1154 | /// Splits an binary operator tree [`Expr`] such as `A <OP> B <OP> C` => `[A, B, C]` |
| 1155 | /// |
no test coverage detected
searching dependent graphs…