From b235af06563d2f74e4072df1944c60c6b34519d7 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 13 Jun 2018 19:12:12 +0300 Subject: [PATCH] Can be private: correct detection of calls inside inline accessors --- .../inspections/MemberVisibilityCanBePrivateInspection.kt | 6 ++++-- .../inspections/memberVisibilityCanBePrivate/inline.kt | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt index 06503dbbf9c..aa7b93c06b8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/MemberVisibilityCanBePrivateInspection.kt @@ -131,8 +131,10 @@ class MemberVisibilityCanBePrivateInspection : AbstractKotlinInspection() { return@Processor false } } - val function = usage.getParentOfType(true) - val insideInlineFun = function?.modifierList?.let { it.hasModifier(KtTokens.INLINE_KEYWORD) && !function.isPrivate() } ?: false + val function = usage.getParentOfTypesAndPredicate( + true, KtNamedFunction::class.java, KtPropertyAccessor::class.java + ) { true } + val insideInlineFun = function?.let { it.hasModifier(KtTokens.INLINE_KEYWORD) && !function.isPrivate() } ?: false if (insideInlineFun) { otherUsageFound = true false diff --git a/idea/testData/inspections/memberVisibilityCanBePrivate/inline.kt b/idea/testData/inspections/memberVisibilityCanBePrivate/inline.kt index e072e9e9e7d..457dc1ef0cc 100644 --- a/idea/testData/inspections/memberVisibilityCanBePrivate/inline.kt +++ b/idea/testData/inspections/memberVisibilityCanBePrivate/inline.kt @@ -15,5 +15,10 @@ object TT { } } + val x: String + inline get() = baz + fun bar(s: String) = s + + val baz = "" } \ No newline at end of file