"Redundant qualifier name": fix false positive with enum constant initialized with companion object field
#KT-33526 Fixed
This commit is contained in:
committed by
Dmitry Gridin
parent
27eea882fb
commit
131567474a
+8
-4
@@ -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<KtEnumEntry>()
|
||||
if (parentEnumEntry != null) {
|
||||
val companionObject = (expressionForAnalyze.receiverExpression.mainReference?.resolve() as? KtObjectDeclaration)
|
||||
?.takeIf { it.isCompanion() }
|
||||
if (companionObject?.containingClass() == parentEnumEntry.getStrictParentOfType<KtClass>()) return
|
||||
}
|
||||
|
||||
val context = originalExpression.analyze()
|
||||
|
||||
val originalDescriptor = expressionForAnalyze.getQualifiedElementSelector()
|
||||
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
// PROBLEM: none
|
||||
enum class C(val i: Int) {
|
||||
ONE(<caret>C.K)
|
||||
;
|
||||
|
||||
companion object {
|
||||
const val K = 1
|
||||
}
|
||||
}
|
||||
+5
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user