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