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.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 inheritable = classOrObject is KtClass && classOrObject.isInheritable()
|
||||
if (!inheritable && declaration.hasModifier(KtTokens.PROTECTED_KEYWORD)) return false //reported by ProtectedInFinalInspection
|
||||
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
|
||||
if (UnusedSymbolInspection.checkAnnotatedUsingPatterns(
|
||||
declaration,
|
||||
|
||||
Reference in New Issue
Block a user