From 6c8276b7019b47072ac54296f3331e538f0e057f Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 6 Jun 2018 14:50:55 +0300 Subject: [PATCH] Do not report "can be private" on annotated declarations #KT-24422 Fixed --- .../inspections/MemberVisibilityCanBePrivateInspection.kt | 2 +- .../inspections/memberVisibilityCanBePrivate/test.kt | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt index eceddea8eb6..66ca09d51ad 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt @@ -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, diff --git a/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt b/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt index 8c1a879bfed..e103662a703 100644 --- a/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt +++ b/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt @@ -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() {}