KT-7651 IllegalArgumentException on attempt to rename class when it has anonymous subclasses

#KT-7651 fixed
 #EA-69049 fixed
This commit is contained in:
Evgeny Gerashchenko
2015-06-15 16:18:39 +03:00
parent 985b8c0ba6
commit 88f2a4be52
5 changed files with 11 additions and 1 deletions
@@ -35,7 +35,7 @@ public class AutomaticInheritorRenamer(klass: JetClass, newName: String): Automa
val lightClass = LightClassUtil.getPsiClass(klass) val lightClass = LightClassUtil.getPsiClass(klass)
if (lightClass != null) { if (lightClass != null) {
for (inheritorLightClass in ClassInheritorsSearch.search(lightClass, true).findAll()) { 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) myElements.add(inheritorLightClass.unwrapped as PsiNamedElement)
} }
} }
@@ -5,5 +5,7 @@ class JavaBar extends Bar {
class Usage { class Usage {
public static void main(String[] args) { public static void main(String[] args) {
Bar bar = null; Bar bar = null;
new Bar() {
};
} }
} }
@@ -11,6 +11,9 @@ fun main(args: Array<String>) {
val someVerySpecialBar: Bar = Bar() val someVerySpecialBar: Bar = Bar()
val barAnother: Bar = Bar() val barAnother: Bar = Bar()
val anonymous = object : Bar() {
}
val (bar1: Bar, bars: List<Bar>) = Pair(Bar(), listOf<Bar>()) val (bar1: Bar, bars: List<Bar>) = Pair(Bar(), listOf<Bar>())
try { try {
@@ -5,5 +5,7 @@ class JavaFoo extends Foo {
class Usage { class Usage {
public static void main(String[] args) { public static void main(String[] args) {
Foo foo = null; Foo foo = null;
new Foo() {
};
} }
} }
@@ -11,6 +11,9 @@ fun main(args: Array<String>) {
val someVerySpecialFoo: Foo = Foo() val someVerySpecialFoo: Foo = Foo()
val fooAnother: Foo = Foo() val fooAnother: Foo = Foo()
val anonymous = object : Foo() {
}
val (foo1: Foo, foos: List<Foo>) = Pair(Foo(), listOf<Foo>()) val (foo1: Foo, foos: List<Foo>) = Pair(Foo(), listOf<Foo>())
try { try {