From 848f7423ee2b83ed4df0df89fb219b287198d65f Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Wed, 12 Jul 2017 06:28:52 +0300 Subject: [PATCH] Do not report "can be private" on properties of private class So #KT-18822 Fixed --- .../MemberVisibilityCanPrivateInspection.kt | 5 +++-- .../memberVisibilityCanBePrivate/test.kt | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt index 59b2ceb92c4..5c9f3395a47 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt @@ -52,8 +52,9 @@ class MemberVisibilityCanPrivateInspection : AbstractKotlinInspection() { override fun visitParameter(parameter: KtParameter) { super.visitParameter(parameter) - if (parameter.isConstructorDeclaredProperty() && canBePrivate(parameter)) { - registerProblem(holder, parameter) + if (parameter.isConstructorDeclaredProperty()) { + if ((parameter.ownerFunction?.parent as? KtClass)?.isPrivate() == true) return + if (canBePrivate(parameter)) registerProblem(holder, parameter) } } } diff --git a/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt b/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt index b4bd4d32e85..7ce6078f71f 100644 --- a/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt +++ b/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt @@ -134,4 +134,18 @@ class F(val bar: Int) { class G(val bar: Int) { private inline fun baz() = bar +} + +private class H(val a: String = "", + var b: String = "", + internal val c: String = "", + protected val d: String = "", + private val e: String = "") { + fun foo() { + println(a) + println(b) + println(c) + println(d) + println(e) + } } \ No newline at end of file