Safe Delete: Fixed usages search when applied to simple enum entries
#KT-11816 Fixed
This commit is contained in:
@@ -34,6 +34,7 @@ Issues fixed:
|
|||||||
- [KT-8817](https://youtrack.jetbrains.com/issue/KT-8817) Fixed rename of Java getters/setters through synthetic property references in Kotlin
|
- [KT-8817](https://youtrack.jetbrains.com/issue/KT-8817) Fixed rename of Java getters/setters through synthetic property references in Kotlin
|
||||||
- [KT-11617](https://youtrack.jetbrains.com/issue/KT-11617) Fixed title of Introduce Parameter declaration chooser
|
- [KT-11617](https://youtrack.jetbrains.com/issue/KT-11617) Fixed title of Introduce Parameter declaration chooser
|
||||||
- [KT-11817](https://youtrack.jetbrains.com/issue/KT-11817) Fixed rename of Kotlin enum constants through Java references
|
- [KT-11817](https://youtrack.jetbrains.com/issue/KT-11817) Fixed rename of Kotlin enum constants through Java references
|
||||||
|
- [KT-11816](https://youtrack.jetbrains.com/issue/KT-11816) Fixed usages search for Safe Delete on simple enum entries
|
||||||
|
|
||||||
#### Debugger
|
#### Debugger
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ object LightClassUtil {
|
|||||||
return extractPropertyAccessors(property, getterWrapper, setterWrapper)
|
return extractPropertyAccessors(property, getterWrapper, setterWrapper)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getLightClassBackingField(declaration: KtDeclaration): PsiField? {
|
fun getLightClassBackingField(declaration: KtDeclaration): PsiField? {
|
||||||
var psiClass: PsiClass = getWrappingClass(declaration) ?: return null
|
var psiClass: PsiClass = getWrappingClass(declaration) ?: return null
|
||||||
|
|
||||||
if (psiClass is KtLightClass) {
|
if (psiClass is KtLightClass) {
|
||||||
|
|||||||
@@ -185,6 +185,10 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() {
|
|||||||
|
|
||||||
return when (element) {
|
return when (element) {
|
||||||
is KtClassOrObject -> {
|
is KtClassOrObject -> {
|
||||||
|
if (element is KtEnumEntry) {
|
||||||
|
LightClassUtil.getLightClassBackingField(element)?.let { findUsagesByJavaProcessor(it, false) }
|
||||||
|
}
|
||||||
|
|
||||||
element.toLightClass()?.let { klass ->
|
element.toLightClass()?.let { klass ->
|
||||||
findDelegationCallUsages(klass)
|
findDelegationCallUsages(klass)
|
||||||
findUsagesByJavaProcessor(klass, false)
|
findUsagesByJavaProcessor(klass, false)
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
enum class EnumTarget { <caret>RED, GREEN, BLUE }
|
||||||
|
|
||||||
|
fun refer(p: EnumTarget) {
|
||||||
|
println(p == EnumTarget.RED)
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class EnumTarget.RED has 1 usage that is not safe to delete.
|
||||||
+6
@@ -67,6 +67,12 @@ public class SafeDeleteTestGenerated extends AbstractSafeDeleteTest {
|
|||||||
doClassTest(fileName);
|
doClassTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumEntry.kt")
|
||||||
|
public void testEnumEntry() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/safeDelete/deleteClass/kotlinClass/enumEntry.kt");
|
||||||
|
doClassTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("localClass1.kt")
|
@TestMetadata("localClass1.kt")
|
||||||
public void testLocalClass1() throws Exception {
|
public void testLocalClass1() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/safeDelete/deleteClass/kotlinClass/localClass1.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/safeDelete/deleteClass/kotlinClass/localClass1.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user