diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt index 1c3f79097e4..4ed92250ef0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt @@ -20,10 +20,7 @@ import org.jetbrains.kotlin.idea.util.getResolutionScope import org.jetbrains.kotlin.idea.util.hasNotReceiver import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.endOffset -import org.jetbrains.kotlin.psi.psiUtil.getLastParentOfTypeInRowWithSelf -import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementSelector -import org.jetbrains.kotlin.psi.psiUtil.startOffset +import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.ImportedFromObjectCallableDescriptor import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe @@ -44,6 +41,13 @@ class RemoveRedundantQualifierNameInspection : AbstractKotlinInspection(), Clean else expressionForAnalyze + val parentEnumEntry = expressionForAnalyze.getStrictParentOfType() + if (parentEnumEntry != null) { + val companionObject = (expressionForAnalyze.receiverExpression.mainReference?.resolve() as? KtObjectDeclaration) + ?.takeIf { it.isCompanion() } + if (companionObject?.containingClass() == parentEnumEntry.getStrictParentOfType()) return + } + val context = originalExpression.analyze() val originalDescriptor = expressionForAnalyze.getQualifiedElementSelector() diff --git a/idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCompanionInEnumEntry.kt b/idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCompanionInEnumEntry.kt new file mode 100644 index 00000000000..4fdc0e55634 --- /dev/null +++ b/idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCompanionInEnumEntry.kt @@ -0,0 +1,9 @@ +// PROBLEM: none +enum class C(val i: Int) { + ONE(C.K) + ; + + companion object { + const val K = 1 + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 5b95ff7d9bd..0b34e51ba77 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -8369,6 +8369,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCompanion.kt"); } + @TestMetadata("notApplicableCompanionInEnumEntry.kt") + public void testNotApplicableCompanionInEnumEntry() throws Exception { + runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCompanionInEnumEntry.kt"); + } + @TestMetadata("notApplicableCompanionOtherName.kt") public void testNotApplicableCompanionOtherName() throws Exception { runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCompanionOtherName.kt");