(fe FieldExpression)
| 204 | } |
| 205 | |
| 206 | func (f *fieldExpressionRewriter) rewriteFieldExpression(fe FieldExpression) (FieldExpression, int) { |
| 207 | var rwCount int |
| 208 | |
| 209 | switch e := fe.(type) { |
| 210 | case *BinaryOperation: |
| 211 | lhs, n := f.rewriteFieldExpression(e.LHS) |
| 212 | rwCount += n |
| 213 | rhs, n := f.rewriteFieldExpression(e.RHS) |
| 214 | rwCount += n |
| 215 | fe = newBinaryOperation(e.Op, lhs, rhs) |
| 216 | case *UnaryOperation: |
| 217 | exp, n := f.rewriteFieldExpression(e.Expression) |
| 218 | rwCount += n |
| 219 | fe = newUnaryOperation(e.Op, exp) |
| 220 | } |
| 221 | |
| 222 | for _, fn := range f.rewriteFunctions { |
| 223 | e, n := fn(fe) |
| 224 | fe = e |
| 225 | rwCount += n |
| 226 | } |
| 227 | |
| 228 | return fe, rwCount |
| 229 | } |
| 230 | |
| 231 | // rewriteOrToIn is a fieldExpressionRewriteFn that rewrites a single { .a = "a" || .b = "b" } to { .a = ["a", "b"] } |
| 232 | func rewriteOrToIn(fe FieldExpression) (FieldExpression, int) { |
no test coverage detected