Redundant companion reference: Fix false negative in enum entry #KT-27861 Fixed

This commit is contained in:
Toshiaki Kameyama
2018-11-07 21:56:08 +09:00
committed by Mikhail Glukhikh
parent 07ca958ff0
commit 23b9889ebb
4 changed files with 19 additions and 1 deletions
@@ -41,7 +41,6 @@ class RedundantCompanionReferenceInspection : AbstractKotlinInspection() {
val containingClass = objectDeclaration.containingClass() ?: return
if (expression.containingClass() != containingClass && expression == parent.receiverExpression) return
if (parent.getStrictParentOfType<KtEnumEntry>()?.containingClass() == containingClass) return
val containingClassDescriptor = containingClass.descriptor as? ClassDescriptor ?: return
val selectorDescriptor = selectorExpression?.getCallableDescriptor()
when (selectorDescriptor) {
@@ -0,0 +1,7 @@
enum class E(val value: String) {
E1(E.<caret>Companion.foo);
companion object {
const val foo = ""
}
}
@@ -0,0 +1,7 @@
enum class E(val value: String) {
E1(E.foo);
companion object {
const val foo = ""
}
}
@@ -3994,6 +3994,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
runTest("idea/testData/inspectionsLocal/redundantCompanionReference/inEnumEntry2.kt");
}
@TestMetadata("inEnumEntry3.kt")
public void testInEnumEntry3() throws Exception {
runTest("idea/testData/inspectionsLocal/redundantCompanionReference/inEnumEntry3.kt");
}
@TestMetadata("methodArgument.kt")
public void testMethodArgument() throws Exception {
runTest("idea/testData/inspectionsLocal/redundantCompanionReference/methodArgument.kt");