From 86c0b2da1424b82a2ccd415c4e99a632ff50c2f2 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 21 May 2012 13:10:50 +0400 Subject: [PATCH] inplace rename: include the whole file in rename scope. when the substitutor is located in the same file it would be included in rename process (IDEA-86294) --- .../SuperMethodAnonymousInheritor.java | 16 ++++++++++++++++ .../SuperMethodAnonymousInheritor_after.java | 16 ++++++++++++++++ .../refactoring/RenameMembersInplaceTest.java | 4 ++++ .../rename/inplace/MemberInplaceRenamer.java | 11 ++++------- 4 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor.java create mode 100644 java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor_after.java diff --git a/java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor.java b/java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor.java new file mode 100644 index 000000000000..d30f2dacbd38 --- /dev/null +++ b/java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor.java @@ -0,0 +1,16 @@ +class Demo { + class MyEvent {} + interface MyEventListener { + void action(MyEvent event); + } + + class Driver { + void method() { + MyEventListener l = new MyEventListener() { + public void action(MyEvent event) { + //To change body of implemented methods use File | Settings | File Templates. + } + }; + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor_after.java b/java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor_after.java new file mode 100644 index 000000000000..ee9f9c67aea5 --- /dev/null +++ b/java/java-tests/testData/refactoring/renameInplace/SuperMethodAnonymousInheritor_after.java @@ -0,0 +1,16 @@ +class Demo { + class MyEvent {} + interface MyEventListener { + void xxx(MyEvent event); + } + + class Driver { + void method() { + MyEventListener l = new MyEventListener() { + public void xxx(MyEvent event) { + //To change body of implemented methods use File | Settings | File Templates. + } + }; + } + } +} \ 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 d551d0ea8580..86729522a0d6 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java @@ -45,6 +45,10 @@ public class RenameMembersInplaceTest extends LightCodeInsightTestCase { public void testSuperMethod() throws Exception { doTestInplaceRename("xxx"); } + + public void testSuperMethodAnonymousInheritor() throws Exception { + doTestInplaceRename("xxx"); + } public void testMultipleConstructors() throws Exception { doTestInplaceRename("Bar"); diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/MemberInplaceRenamer.java b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/MemberInplaceRenamer.java index 52894500489f..0640b0d0da2d 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/MemberInplaceRenamer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/MemberInplaceRenamer.java @@ -84,14 +84,11 @@ public class MemberInplaceRenamer extends VariableInplaceRenamer { @Override protected PsiElement checkLocalScope() { - PsiElement scope = super.checkLocalScope(); - if (scope == null) { - PsiFile currentFile = PsiDocumentManager.getInstance(myProject).getPsiFile(myEditor.getDocument()); - if (currentFile != null) { - return currentFile; - } + PsiFile currentFile = PsiDocumentManager.getInstance(myProject).getPsiFile(myEditor.getDocument()); + if (currentFile != null) { + return currentFile; } - return scope; + return super.checkLocalScope(); } @Override