Flattens nested expressions. @param cc compilation context
(final CompileContext cc)
| 130 | * @param cc compilation context |
| 131 | */ |
| 132 | protected final void flatten(final CompileContext cc) { |
| 133 | // flatten nested expressions |
| 134 | final ExprList list = new ExprList(exprs.length); |
| 135 | final Class<? extends Arr> clazz = getClass(); |
| 136 | for(final Expr expr : exprs) { |
| 137 | if(clazz.isInstance(expr)) { |
| 138 | list.add(expr.args()); |
| 139 | cc.info(QueryText.OPTFLAT_X_X, expr, (Supplier<?>) this::description); |
| 140 | } else { |
| 141 | list.add(expr); |
| 142 | } |
| 143 | } |
| 144 | exprs = list.finish(); |
| 145 | } |
| 146 | |
| 147 | /** |
| 148 | * Removes empty expressions. |