diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt index 5ff266c74c6..5966aac7309 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanPrivateInspection.kt @@ -30,10 +30,7 @@ import org.jetbrains.kotlin.idea.quickfix.AddModifierFix import org.jetbrains.kotlin.idea.refactoring.isConstructorDeclaredProperty import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject -import org.jetbrains.kotlin.psi.psiUtil.getParentOfType -import org.jetbrains.kotlin.psi.psiUtil.isInheritable -import org.jetbrains.kotlin.psi.psiUtil.isOverridable +import org.jetbrains.kotlin.psi.psiUtil.* class MemberVisibilityCanPrivateInspection : AbstractKotlinInspection() { @@ -91,8 +88,18 @@ class MemberVisibilityCanPrivateInspection : AbstractKotlinInspection() { false } else { - inClassUsageFound = true - true + val function = usage.getParentOfType(false) + val insideInlineFun = function?.modifierList?.let { + it.hasModifier(KtTokens.INLINE_KEYWORD) && !function.isPrivate() + } ?: false + if (insideInlineFun) { + otherUsageFound = true + false + } + else { + inClassUsageFound = true + true + } } }) return inClassUsageFound && !otherUsageFound diff --git a/idea/testData/inspections/memberVisibilityCanBePrivate/inspectionData/expected.xml b/idea/testData/inspections/memberVisibilityCanBePrivate/inspectionData/expected.xml index 43bc0617b61..68a6e1c82d5 100644 --- a/idea/testData/inspections/memberVisibilityCanBePrivate/inspectionData/expected.xml +++ b/idea/testData/inspections/memberVisibilityCanBePrivate/inspectionData/expected.xml @@ -107,4 +107,13 @@ Can have 'private' visibility Function 'f2' can be private + + + test.kt + 135 + light_idea_test_case + + Can have 'private' visibility + Property 'bar' can be private + diff --git a/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt b/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt index 4b497322359..b4bd4d32e85 100644 --- a/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt +++ b/idea/testData/inspections/memberVisibilityCanBePrivate/test.kt @@ -126,4 +126,12 @@ val x = object { f3() f4() } +} + +class F(val bar: Int) { + inline fun baz() = bar +} + +class G(val bar: Int) { + private inline fun baz() = bar } \ No newline at end of file