Do not report "can be private" on annotated declarations #KT-24422 Fixed

This commit is contained in:
Mikhail Glukhikh
2018-06-06 14:50:55 +03:00
parent d1155070a7
commit 6c8276b701
2 changed files with 9 additions and 1 deletions
@@ -75,6 +75,7 @@ class MemberVisibilityCanBePrivateInspection : AbstractKotlinInspection() {
private fun canBePrivate(declaration: KtNamedDeclaration): Boolean {
if (declaration.hasModifier(KtTokens.PRIVATE_KEYWORD) || declaration.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return false
if (declaration.annotationEntries.isNotEmpty()) return false
if (declaration.hasActualModifier() || declaration.isExpectDeclaration()) return false
val descriptor = (declaration.toDescriptor() as? DeclarationDescriptorWithVisibility) ?: return false
@@ -89,7 +90,6 @@ class MemberVisibilityCanBePrivateInspection : AbstractKotlinInspection() {
if (!inheritable && declaration.hasModifier(KtTokens.PROTECTED_KEYWORD)) return false //reported by ProtectedInFinalInspection
if (declaration.isOverridable()) return false
if (descriptor.hasJvmFieldAnnotation()) return false
val entryPointsManager = EntryPointsManager.getInstance(declaration.project) as EntryPointsManagerBase
if (UnusedSymbolInspection.checkAnnotatedUsingPatterns(
declaration,
@@ -219,3 +219,11 @@ actual class Actual {
actual fun foo() {}
actual val bar = 42
}
annotation class Ann
@Ann
val annotated = 3.14
@Ann
fun annotatedFun() {}