@Override public int exprSize() { int sz = 1; for (final Let lt : copies) sz += lt.exprSize(); for (final Expr e : expr) sz += e.exprSize(); return sz; }
@Override public void checkUp() throws QueryException { for (final Let c : copies) c.checkUp(); final Expr m = expr[0]; m.checkUp(); if (!m.isVacuous() && !m.has(Flag.UPD)) throw UPMODIFY.get(info); checkNoUp(expr[1]); }
@Override public boolean removable(final Var v) { for (final Let c : copies) if (!c.removable(v)) return false; return super.removable(v); }
@Override public Expr compile(final QueryContext ctx, final VarScope scp) throws QueryException { for (final Let c : copies) c.expr = c.expr.compile(ctx, scp); super.compile(ctx, scp); return this; }