Optimize MemberVisibilityCanBePrivateInspection: check that descriptor is in class before resolving it
This commit is contained in:
+5
-5
@@ -79,16 +79,16 @@ class MemberVisibilityCanBePrivateInspection : AbstractKotlinInspection() {
|
|||||||
if (declaration.hasModifier(KtTokens.PRIVATE_KEYWORD) || declaration.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return false
|
if (declaration.hasModifier(KtTokens.PRIVATE_KEYWORD) || declaration.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return false
|
||||||
if (declaration.annotationEntries.isNotEmpty()) return false
|
if (declaration.annotationEntries.isNotEmpty()) return false
|
||||||
|
|
||||||
val descriptor = (declaration.toDescriptor() as? DeclarationDescriptorWithVisibility) ?: return false
|
|
||||||
when (descriptor.effectiveVisibility()) {
|
|
||||||
EffectiveVisibility.Private, EffectiveVisibility.Local -> return false
|
|
||||||
}
|
|
||||||
|
|
||||||
val classOrObject = declaration.containingClassOrObject ?: return false
|
val classOrObject = declaration.containingClassOrObject ?: return false
|
||||||
val inheritable = classOrObject is KtClass && classOrObject.isInheritable()
|
val inheritable = classOrObject is KtClass && classOrObject.isInheritable()
|
||||||
if (!inheritable && declaration.hasModifier(KtTokens.PROTECTED_KEYWORD)) return false //reported by ProtectedInFinalInspection
|
if (!inheritable && declaration.hasModifier(KtTokens.PROTECTED_KEYWORD)) return false //reported by ProtectedInFinalInspection
|
||||||
if (declaration.isOverridable()) return false
|
if (declaration.isOverridable()) return false
|
||||||
|
|
||||||
|
val descriptor = (declaration.toDescriptor() as? DeclarationDescriptorWithVisibility) ?: return false
|
||||||
|
when (descriptor.effectiveVisibility()) {
|
||||||
|
EffectiveVisibility.Private, EffectiveVisibility.Local -> return false
|
||||||
|
}
|
||||||
|
|
||||||
val entryPointsManager = EntryPointsManager.getInstance(declaration.project) as EntryPointsManagerBase
|
val entryPointsManager = EntryPointsManager.getInstance(declaration.project) as EntryPointsManagerBase
|
||||||
if (UnusedSymbolInspection.checkAnnotatedUsingPatterns(
|
if (UnusedSymbolInspection.checkAnnotatedUsingPatterns(
|
||||||
declaration,
|
declaration,
|
||||||
|
|||||||
Reference in New Issue
Block a user