return new Pair(Collections.emptyList(),expr);
return new Pair(stmts,expr);
        Pair<List<JStatement>,JExpression> recurrTopExpression (JExpression expr) {            List<JStatement> stmts = new LinkedList<JStatement>();            if (simpleExpression(expr) || ! shouldConvertExpression(expr)) {                return new Pair(Collections.emptyList(),expr);            } else {                JVariableDefinition tmp = new JVariableDefinition(expr.getType(),                         nextTemp());                JVariableDeclarationStatement decl = new JVariableDeclarationStatement(                        tmp);                JLocalVariableExpression v = new JLocalVariableExpression(                        tmp);                List<JStatement> newstmts = new LinkedList<JStatement>();                newstmts.add(decl);                newstmts.addAll(recurrExpression(expr,v));                return new Pair(newstmts,v);            }        }   