@Override public VarUsage count(final Var var) { return ts.count(var).plus(VarUsage.maximum(var, cases)); }
@Override public VarUsage count(final Var var) { final VarUsage inRoot = root == null ? VarUsage.NEVER : root.count(var); return VarUsage.sum(var, steps) == VarUsage.NEVER ? inRoot : VarUsage.MORE_THAN_ONCE; }
@Override public VarUsage count(final Var var) { return occ != null ? VarUsage.sum(var, occ).plus(query.count(var)) : query.count(var); }
@Override public int count(final Var v) { int c = ts.count(v); for (final TypeCase t : cases) c += t.count(v); return c; }
@Override public boolean removable(final Var v) { for (final Expr p : pred) if (p.count(v) != 0) return false; return true; }
@Override public int count(final Var v) { int c = 0; for (final Expr p : pred) c += p.count(v); return c; }