"Can be private" inspection: don't analyze data class parameters

So #KT-23566 Fixed
This commit is contained in:
Mikhail Glukhikh
2018-04-02 23:17:47 +03:00
parent dc3cd01fad
commit 66d134ef5c
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.idea.core.toDescriptor
import org.jetbrains.kotlin.idea.quickfix.AddModifierFix
import org.jetbrains.kotlin.idea.refactoring.isConstructorDeclaredProperty
import org.jetbrains.kotlin.idea.search.isCheapEnoughToSearchConsideringOperators
import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunction
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
@@ -95,6 +96,9 @@ class MemberVisibilityCanBePrivateInspection : AbstractKotlinInspection() {
additionalAnnotations + ADDITIONAL_ANNOTATIONS
})) return false
// properties can be referred by component1/component2, which is too expensive to search, don't analyze them
if (declaration is KtParameter && declaration.dataClassComponentFunction() != null) return false
val psiSearchHelper = PsiSearchHelper.SERVICE.getInstance(declaration.project)
val useScope = declaration.useScope
val name = declaration.name ?: return false