From e5406159042c0f6cdad7490520aae9f02cdb8f77 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 3 Dec 2014 12:59:54 +0100 Subject: [PATCH] extract method: convert field to local cleanup --- .../extractMethod/ExtractMethodProcessor.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java index bdeab1560188..39dff9895227 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java @@ -125,7 +125,6 @@ public class ExtractMethodProcessor implements MatchProvider { protected boolean myCanBeStatic; protected boolean myCanBeChainedConstructor; protected boolean myIsChainedConstructor; - private DuplicatesFinder myDuplicatesFinder; private List myDuplicates; @PsiModifier.ModifierConstant private String myMethodVisibility = PsiModifier.PRIVATE; protected boolean myGenerateConditionalExit; @@ -709,7 +708,7 @@ public class ExtractMethodProcessor implements MatchProvider { } } - private void initDuplicates() { + private DuplicatesFinder initDuplicates() { List elements = new ArrayList(); for (PsiElement element : myElements) { if (!(element instanceof PsiWhiteSpace || element instanceof PsiComment)) { @@ -718,18 +717,21 @@ public class ExtractMethodProcessor implements MatchProvider { } if (myExpression != null) { - myDuplicatesFinder = new DuplicatesFinder(PsiUtilCore.toPsiElementArray(elements), myInputVariables.copy(), + DuplicatesFinder finder = new DuplicatesFinder(PsiUtilCore.toPsiElementArray(elements), myInputVariables.copy(), new ArrayList()); - myDuplicates = myDuplicatesFinder.findDuplicates(myTargetClass); + myDuplicates = finder.findDuplicates(myTargetClass); + return finder; } else if (elements.size() > 0){ - myDuplicatesFinder = new DuplicatesFinder(PsiUtilCore.toPsiElementArray(elements), myInputVariables.copy(), + DuplicatesFinder myDuplicatesFinder = new DuplicatesFinder(PsiUtilCore.toPsiElementArray(elements), myInputVariables.copy(), myOutputVariable != null ? new VariableReturnValue(myOutputVariable) : null, Arrays.asList(myOutputVariables)); myDuplicates = myDuplicatesFinder.findDuplicates(myTargetClass); + return myDuplicatesFinder; } else { myDuplicates = new ArrayList(); } + return null; } public void doExtract() throws IncorrectOperationException { @@ -1561,12 +1563,12 @@ public class ExtractMethodProcessor implements MatchProvider { } public boolean hasDuplicates(Set files) { - initDuplicates(); + final DuplicatesFinder finder = initDuplicates(); if (hasDuplicates()) return true; final PsiManager psiManager = PsiManager.getInstance(myProject); for (VirtualFile file : files) { - if (!myDuplicatesFinder.findDuplicates(psiManager.findFile(file)).isEmpty()) return true; + if (!finder.findDuplicates(psiManager.findFile(file)).isEmpty()) return true; } return false; }