diff --git a/src/com/perl5/lang/perl/idea/refactoring/rename/PerlRenamePolyReferencedElementProcessor.java b/src/com/perl5/lang/perl/idea/refactoring/rename/PerlRenamePolyReferencedElementProcessor.java index 530ebdab5f..66662c4f9e 100644 --- a/src/com/perl5/lang/perl/idea/refactoring/rename/PerlRenamePolyReferencedElementProcessor.java +++ b/src/com/perl5/lang/perl/idea/refactoring/rename/PerlRenamePolyReferencedElementProcessor.java @@ -26,14 +26,17 @@ import com.intellij.refactoring.rename.PsiElementRenameHandler; import com.intellij.refactoring.rename.RenamePsiElementProcessor; import com.perl5.PerlIcons; +import com.perl5.lang.perl.parser.Class.Accessor.psi.impl.PerlClassAccessorMethod; import com.perl5.lang.perl.psi.PerlGlobVariable; import com.perl5.lang.perl.psi.PerlSubElement; import com.perl5.lang.perl.util.PerlSubUtil; import com.perl5.lang.pod.PodLanguage; +import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Map; +import java.util.Set; /** * Created by hurricup on 03.10.2015. @@ -67,6 +70,18 @@ public void prepareRenaming(PsiElement element, String newName, Map allElements = new THashSet<>(allRenames.keySet()); + allElements.stream() + .filter(e -> e instanceof PerlClassAccessorMethod) + .forEach(e -> { + PerlClassAccessorMethod pairedMethod = ((PerlClassAccessorMethod)e).getPairedMethod(); + if (pairedMethod != null && allRenames.containsKey(e)) { + allRenames.remove(pairedMethod); + } + }); + } } diff --git a/src/com/perl5/lang/perl/parser/Class/Accessor/psi/impl/PerlClassAccessorMethod.java b/src/com/perl5/lang/perl/parser/Class/Accessor/psi/impl/PerlClassAccessorMethod.java index 4c8d9ca879..363e4c2310 100644 --- a/src/com/perl5/lang/perl/parser/Class/Accessor/psi/impl/PerlClassAccessorMethod.java +++ b/src/com/perl5/lang/perl/parser/Class/Accessor/psi/impl/PerlClassAccessorMethod.java @@ -19,7 +19,6 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.stubs.IStubElementType; import com.intellij.util.Function; -import com.intellij.util.IncorrectOperationException; import com.perl5.lang.perl.extensions.PerlRenameUsagesHelper; import com.perl5.lang.perl.psi.light.PerlDelegatingLightNamedElement; import com.perl5.lang.perl.psi.light.PerlLightMethodDefinitionElement; @@ -144,9 +143,4 @@ else if (getSetterName().equals(currentValue)) { public boolean isInplaceRefactoringAllowed() { return !isFollowBestPractice(); } - - @Override - public PsiElement setName(@NotNull String newBaseName) throws IncorrectOperationException { - return isValid() ? super.setName(newBaseName) : null; - } }