From 88f2a4be52fc77270a50364f7dceb039629a9222 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 15 Jun 2015 16:18:39 +0300 Subject: [PATCH] KT-7651 IllegalArgumentException on attempt to rename class when it has anonymous subclasses #KT-7651 fixed #EA-69049 fixed --- .../idea/refactoring/rename/AutomaticInheritorRenamer.kt | 2 +- .../refactoring/rename/automaticRenamer/after/javaUsage.java | 2 ++ .../testData/refactoring/rename/automaticRenamer/after/main.kt | 3 +++ .../refactoring/rename/automaticRenamer/before/javaUsage.java | 2 ++ .../refactoring/rename/automaticRenamer/before/main.kt | 3 +++ 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/AutomaticInheritorRenamer.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/AutomaticInheritorRenamer.kt index 43d744cbb59..0feabaeaff9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/AutomaticInheritorRenamer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/AutomaticInheritorRenamer.kt @@ -35,7 +35,7 @@ public class AutomaticInheritorRenamer(klass: JetClass, newName: String): Automa val lightClass = LightClassUtil.getPsiClass(klass) if (lightClass != null) { for (inheritorLightClass in ClassInheritorsSearch.search(lightClass, true).findAll()) { - if (inheritorLightClass.getName() != null) { + if ((inheritorLightClass.unwrapped as? PsiNamedElement)?.getName() != null) { myElements.add(inheritorLightClass.unwrapped as PsiNamedElement) } } diff --git a/idea/testData/refactoring/rename/automaticRenamer/after/javaUsage.java b/idea/testData/refactoring/rename/automaticRenamer/after/javaUsage.java index a20bf9b65b1..92de2261c93 100644 --- a/idea/testData/refactoring/rename/automaticRenamer/after/javaUsage.java +++ b/idea/testData/refactoring/rename/automaticRenamer/after/javaUsage.java @@ -5,5 +5,7 @@ class JavaBar extends Bar { class Usage { public static void main(String[] args) { Bar bar = null; + new Bar() { + }; } } \ No newline at end of file diff --git a/idea/testData/refactoring/rename/automaticRenamer/after/main.kt b/idea/testData/refactoring/rename/automaticRenamer/after/main.kt index 008288a7f7d..16ac8766c59 100644 --- a/idea/testData/refactoring/rename/automaticRenamer/after/main.kt +++ b/idea/testData/refactoring/rename/automaticRenamer/after/main.kt @@ -11,6 +11,9 @@ fun main(args: Array) { val someVerySpecialBar: Bar = Bar() val barAnother: Bar = Bar() + val anonymous = object : Bar() { + } + val (bar1: Bar, bars: List) = Pair(Bar(), listOf()) try { diff --git a/idea/testData/refactoring/rename/automaticRenamer/before/javaUsage.java b/idea/testData/refactoring/rename/automaticRenamer/before/javaUsage.java index de4fb650d51..a1fbdcf1ab9 100644 --- a/idea/testData/refactoring/rename/automaticRenamer/before/javaUsage.java +++ b/idea/testData/refactoring/rename/automaticRenamer/before/javaUsage.java @@ -5,5 +5,7 @@ class JavaFoo extends Foo { class Usage { public static void main(String[] args) { Foo foo = null; + new Foo() { + }; } } \ No newline at end of file diff --git a/idea/testData/refactoring/rename/automaticRenamer/before/main.kt b/idea/testData/refactoring/rename/automaticRenamer/before/main.kt index c9adfff0620..4709f3fa4ff 100644 --- a/idea/testData/refactoring/rename/automaticRenamer/before/main.kt +++ b/idea/testData/refactoring/rename/automaticRenamer/before/main.kt @@ -11,6 +11,9 @@ fun main(args: Array) { val someVerySpecialFoo: Foo = Foo() val fooAnother: Foo = Foo() + val anonymous = object : Foo() { + } + val (foo1: Foo, foos: List) = Pair(Foo(), listOf()) try {