void (Statement stat, List<? super Statement> lst, HashSet<? super Statement> setVisited) { if (setVisited.contains(stat)) { // because of not considered exception edges, s. isExitComponent. Should be rewritten, if possible. return; } setVisited.add(stat); for (StatEdge prededge : stat.getEdges(EdgeType.REGULAR.unite(EdgeType.EXCEPTION), EdgeDirection.BACKWARD)) { Statement pred = prededge.getSource(); if (!setVisited.contains(pred)) { addToPostReversePostOrderList(pred, lst, setVisited); } } lst.add(0, stat); }