From 49c640733c387c42b9652f8e6441daa5e019a6d1 Mon Sep 17 00:00:00 2001 From: Graham Date: Sat, 11 Jul 2020 15:02:11 +0100 Subject: [PATCH] Remove issingle condition in matchFor It produces rather ugly output where a while loop is more appropriate. --- .../modules/decompiler/MergeHelper.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/org/jetbrains/java/decompiler/modules/decompiler/MergeHelper.java b/src/org/jetbrains/java/decompiler/modules/decompiler/MergeHelper.java index ed9f368..7f0aef6 100644 --- a/src/org/jetbrains/java/decompiler/modules/decompiler/MergeHelper.java +++ b/src/org/jetbrains/java/decompiler/modules/decompiler/MergeHelper.java @@ -280,14 +280,7 @@ public class MergeHelper { List lstExpr = lastData.getExprents(); lastDoExprent = lstExpr.get(lstExpr.size() - 1); - boolean issingle = false; - if (lstExpr.size() == 1) { // single exprent - if (lastData.getAllPredecessorEdges().size() > 1) { // break edges - issingle = true; - } - } - - boolean haslast = issingle || lastDoExprent.type == Exprent.EXPRENT_ASSIGNMENT || lastDoExprent.type == Exprent.EXPRENT_FUNCTION; + boolean haslast = lastDoExprent.type == Exprent.EXPRENT_ASSIGNMENT || lastDoExprent.type == Exprent.EXPRENT_FUNCTION; if (!haslast) { return; } @@ -323,7 +316,7 @@ public class MergeHelper { } } - if (hasinit || issingle) { // FIXME: issingle sufficient? + if (hasinit) { Set set = stat.getNeighboursSet(StatEdge.TYPE_CONTINUE, Statement.DIRECTION_BACKWARD); set.remove(lastData); @@ -332,9 +325,7 @@ public class MergeHelper { } stat.setLooptype(DoStatement.LOOP_FOR); - if (hasinit) { - stat.setInitExprent(preData.getExprents().remove(preData.getExprents().size() - 1)); - } + stat.setInitExprent(preData.getExprents().remove(preData.getExprents().size() - 1)); stat.setIncExprent(lastData.getExprents().remove(lastData.getExprents().size() - 1)); }