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-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-11816](https://youtrack.jetbrains.com/issue/KT-11816) Fixed usages search for Safe Delete on simple enum entries
|
||||
|
||||
#### Debugger
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ object LightClassUtil {
|
||||
return extractPropertyAccessors(property, getterWrapper, setterWrapper)
|
||||
}
|
||||
|
||||
private fun getLightClassBackingField(declaration: KtDeclaration): PsiField? {
|
||||
fun getLightClassBackingField(declaration: KtDeclaration): PsiField? {
|
||||
var psiClass: PsiClass = getWrappingClass(declaration) ?: return null
|
||||
|
||||
if (psiClass is KtLightClass) {
|
||||
|
||||
@@ -185,6 +185,10 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() {
|
||||
|
||||
return when (element) {
|
||||
is KtClassOrObject -> {
|
||||
if (element is KtEnumEntry) {
|
||||
LightClassUtil.getLightClassBackingField(element)?.let { findUsagesByJavaProcessor(it, false) }
|
||||
}
|
||||
|
||||
element.toLightClass()?.let { klass ->
|
||||
findDelegationCallUsages(klass)
|
||||
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);
|
||||
}
|
||||
|
||||
@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")
|
||||
public void testLocalClass1() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/safeDelete/deleteClass/kotlinClass/localClass1.kt");
|
||||
|
||||
Reference in New Issue
Block a user