void maybeExposeExpression ( Node expression ) { // If the expression needs to exposed. int i = 0 ; while ( DecompositionType . DECOMPOSABLE == canExposeExpression ( expression ) ) { exposeExpression ( expression ) ; i ++ ; if ( i > MAX_ITERATIONS ) { throw new IllegalStateException ( "DecomposeExpression depth exceeded on:\n" + expression . toStringTree ( ) ) ; } } }
If required rewrite the statement containing the expression .