mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
CollapseIntoLoopAction: use tracking equivalence checker
GitOrigin-RevId: e8194d0ed5c4603eacbb0d904232f79f6373e56a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fb8cffea13
commit
7470db33d8
+2
-5
@@ -17,10 +17,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.siyeh.ig.psiutils.ControlFlowUtils;
|
||||
import com.siyeh.ig.psiutils.EquivalenceChecker;
|
||||
import com.siyeh.ig.psiutils.VariableAccessUtils;
|
||||
import com.siyeh.ig.psiutils.VariableNameGenerator;
|
||||
import com.siyeh.ig.psiutils.*;
|
||||
import one.util.streamex.MoreCollectors;
|
||||
import one.util.streamex.StreamEx;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -220,7 +217,7 @@ public class CollapseIntoLoopAction implements IntentionAction {
|
||||
for (int index = 0; index < count; index++) {
|
||||
PsiStatement first = statements.get(index);
|
||||
PsiStatement cur = statements.get(index + offset);
|
||||
EquivalenceChecker.Match match = equivalence.statementsMatch(first, cur);
|
||||
EquivalenceChecker.Match match = new TrackingEquivalenceChecker().statementsMatch(first, cur);
|
||||
if (match.isExactMismatch()) return false;
|
||||
if (match.isExactMatch()) continue;
|
||||
PsiElement leftDiff = match.getLeftDiff();
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Collapse into loop" "true"
|
||||
class X {
|
||||
public int hashCode() {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
System.out.println(1);
|
||||
for (int i = 0; i < 10; i++) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Collapse into loop" "true"
|
||||
class X {
|
||||
public int hashCode() {
|
||||
<caret>System.out.println(1);
|
||||
for (int i = 0; i < 10; i++) {}
|
||||
System.out.println(1);
|
||||
for (int i = 0; i < 10; i++) {}
|
||||
System.out.println(1);
|
||||
for (int i = 0; i < 10; i++) {}
|
||||
System.out.println(1);
|
||||
for (int i = 0; i < 10; i++) {}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user