for (Expression<?> expr : exprs) {
for (Field field : expr.getClass().getFields()) {
Object rv = field.get(expr);
if (rv instanceof Expression) {
if (rv instanceof StringExpression) {
StringExpression str = (StringExpression)rv;
toVisit.add(str.toLowerCase());
toVisit.add(str.charAt(0));
toVisit.add(str.isEmpty());
} else if (rv instanceof BooleanExpression) {
BooleanExpression b = (BooleanExpression)rv;
toVisit.add(b.not());
}
toVisit.add((Expression<?>) rv);