From 5315375de47d925a88bd4db133bd8653670d1034 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 10 Sep 2012 19:58:00 +0400 Subject: [PATCH] inplace rename: do not rename enum constants when constructor was renamed (IDEA-91063) --- .../refactoring/renameInplace/EnumConstructor.java | 8 ++++++++ .../refactoring/renameInplace/EnumConstructor_after.java | 8 ++++++++ .../intellij/refactoring/RenameMembersInplaceTest.java | 4 ++++ .../refactoring/rename/inplace/InplaceRefactoring.java | 4 ++++ 4 files changed, 24 insertions(+) create mode 100644 java/java-tests/testData/refactoring/renameInplace/EnumConstructor.java create mode 100644 java/java-tests/testData/refactoring/renameInplace/EnumConstructor_after.java diff --git a/java/java-tests/testData/refactoring/renameInplace/EnumConstructor.java b/java/java-tests/testData/refactoring/renameInplace/EnumConstructor.java new file mode 100644 index 000000000000..b25ef10cb98e --- /dev/null +++ b/java/java-tests/testData/refactoring/renameInplace/EnumConstructor.java @@ -0,0 +1,8 @@ +enum Foo { + BAR, + BAZ + ; + + Foo() { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/renameInplace/EnumConstructor_after.java b/java/java-tests/testData/refactoring/renameInplace/EnumConstructor_after.java new file mode 100644 index 000000000000..83fd66215e1c --- /dev/null +++ b/java/java-tests/testData/refactoring/renameInplace/EnumConstructor_after.java @@ -0,0 +1,8 @@ +enum Bar { + BAR, + BAZ + ; + + Bar() { + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java b/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java index 86729522a0d6..509a68ceb95c 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java @@ -61,6 +61,10 @@ public class RenameMembersInplaceTest extends LightCodeInsightTestCase { public void testMethodWithJavadocRef() throws Exception { doTestInplaceRename("bar"); } + + public void testEnumConstructor() throws Exception { + doTestInplaceRename("Bar"); + } public void testConflictingMethodName() throws Exception { try { diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java index 7f743742985f..a2fc0cc2413c 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java @@ -220,6 +220,10 @@ public abstract class InplaceRefactoring { } protected boolean acceptReference(PsiReference reference) { + final PsiElement element = reference.getElement(); + if (element instanceof PsiNamedElement) { + return Comparing.strEqual(((PsiNamedElement)element).getName(), myElementToRename.getName()); + } return true; }