From 937ccb626c16679cdda4eb0371359a87963dfde7 Mon Sep 17 00:00:00 2001 From: Andrey Tarbeev Date: Tue, 15 Nov 2022 14:15:38 +0300 Subject: [PATCH] Exclude protected kotlin methods from generate window --- .../kotlin/org/utbot/intellij/plugin/util/PsiClassHelper.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/PsiClassHelper.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/PsiClassHelper.kt index f02a4deb40..2ce3fc0eb7 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/PsiClassHelper.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/PsiClassHelper.kt @@ -6,6 +6,7 @@ import com.intellij.psi.PsiModifier import com.intellij.psi.SyntheticElement import com.intellij.refactoring.util.classMembers.MemberInfo import com.intellij.testIntegration.TestIntegrationUtils +import org.jetbrains.kotlin.asJava.elements.KtLightMember import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.asJava.elements.isGetter import org.jetbrains.kotlin.asJava.elements.isSetter @@ -23,6 +24,9 @@ private val PsiMember.isKotlinGetterOrSetter: Boolean return isGetter || isSetter } +private val PsiMember.isKotlinAndProtected: Boolean + get() = this is KtLightMember<*> && this.hasModifierProperty(PsiModifier.PROTECTED) + // By now, we think that method in Kotlin is autogenerated iff navigation to its declaration leads to its declaring class // rather than the method itself (because such methods don't have bodies that we can navigate to) private val PsiMember.isKotlinAutogeneratedMethod: Boolean @@ -34,6 +38,7 @@ fun Iterable.filterTestableMethods(): List = this } .filterNot { it.member.isAbstract } .filterNot { it.member.isKotlinGetterOrSetter } + .filterNot { it.member.isKotlinAndProtected } private val PsiClass.isPrivateOrProtected: Boolean get() = this.modifierList?.let {