diff --git a/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaClassProcessor.java b/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaClassProcessor.java index f3a71534b293..7cc89acfc513 100644 --- a/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaClassProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/rename/RenameJavaClassProcessor.java @@ -217,7 +217,7 @@ public class RenameJavaClassProcessor extends RenamePsiElementProcessor { } } } - else { + else if (!(aClass instanceof PsiTypeParameter)) { final String qualifiedNameAfterRename = RenameUtil.getQualifiedNameAfterRename(aClass.getQualifiedName(), newName); Project project = element.getProject(); final PsiClass conflictingClass = diff --git a/java/java-tests/testData/refactoring/renameCollisions/RenameTypeParameterToExistingClassName.java b/java/java-tests/testData/refactoring/renameCollisions/RenameTypeParameterToExistingClassName.java new file mode 100644 index 000000000000..2bc8f20fc2b2 --- /dev/null +++ b/java/java-tests/testData/refactoring/renameCollisions/RenameTypeParameterToExistingClassName.java @@ -0,0 +1,3 @@ +public class Test extends String> {} + +class P {} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/renameCollisions/RenameTypeParameterToExistingClassName.java.after b/java/java-tests/testData/refactoring/renameCollisions/RenameTypeParameterToExistingClassName.java.after new file mode 100644 index 000000000000..b4f9ab017419 --- /dev/null +++ b/java/java-tests/testData/refactoring/renameCollisions/RenameTypeParameterToExistingClassName.java.after @@ -0,0 +1,3 @@ +public class Test

{} + +class P {} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/RenameCollisionsTest.java b/java/java-tests/testSrc/com/intellij/refactoring/RenameCollisionsTest.java index 1a069c4712fa..3e0ec0e89e3d 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/RenameCollisionsTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/RenameCollisionsTest.java @@ -157,6 +157,10 @@ public class RenameCollisionsTest extends LightCodeInsightTestCase { fail("Conflicts were not found"); } + public void testRenameTypeParameterToExistingClassName() throws Exception { + doTest("P"); + } + private void doTest(final String newName) throws Exception { configureByFile(BASE_PATH + getTestName(false) + ".java"); PsiElement element = TargetElementUtilBase