@SuppressWarnings("unchecked")
  public <T extends Expression> T rewrite(final T expression, final C context) {
    return (T) rewriter.process(expression, context);
  }
@Test
  public void shouldRewriteLiteral() {
    for (final Expression expression : LITERALS) {
      // When:
      final Expression rewritten = expressionRewriter.rewrite(expression, context);

      // Then:
      assertThat(rewritten, is(expression));
    }
  }