code: void exposeExpression(Node expression) {
      Node expressionRoot = findExpressionRoot(expression);
      checkNotNull(expressionRoot);
      checkState(NodeUtil.isStatement(expressionRoot), expressionRoot);
      exposeExpression(expressionRoot, expression);
    }
docs: Perform any rewriting necessary so that the specified expression is {@code MOVABLE}.
  
  <p>This method is a primary entrypoint into this class. It performs a partial expression
  decomposition such that {@code expression} can be moved to a preceding statement without
  changing behaviour.
  
  <p>Exposing {@code expression} generally doesn't mean that {@code expression} itself will
  moved. An expression is exposed within a larger statement if no preceding expression would
  interact with it.
  
  @see {@link #canExposeExpression}