From b6090643f86c26f6e2c2c390bd469cb94309c2fd Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Tue, 22 Mar 2016 18:16:55 +0300 Subject: [PATCH] vcs: simplify the code Use ContainerUtil.find for cleaner logic. --- .../intellij/openapi/vcs/VcsVFSListener.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java index 4469d617bc92..3af8b8d46ef5 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java @@ -23,6 +23,7 @@ import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vcs.actions.VcsContextFactory; import com.intellij.openapi.vcs.changes.ChangeListManager; @@ -275,16 +276,19 @@ public abstract class VcsVFSListener implements Disposable { myDirtyFiles.add(file); // will be at new path } } + final String newPath = newParentPath + "/" + newName; - boolean foundExistingInfo = false; - for (MovedFileInfo info : myMovedFiles) { - if (Comparing.equal(info.myFile, file)) { - info.myNewPath = newPath; - foundExistingInfo = true; - break; + MovedFileInfo existingMovedFile = ContainerUtil.find(myMovedFiles, new Condition() { + @Override + public boolean value(MovedFileInfo info) { + return Comparing.equal(info.myFile, file); } + }); + if (existingMovedFile != null) { + LOG.debug("Reusing existing moved file " + file); + existingMovedFile.myNewPath = newPath; } - if (!foundExistingInfo) { + else { LOG.debug("Registered moved file " + file); myMovedFiles.add(new MovedFileInfo(file, newPath)); }