Skip to content

Commit 02942e2

Browse files
authored
Exclude protected kotlin methods from generate window #1280 (#1373)
1 parent 52a4bc2 commit 02942e2

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/PsiClassHelper.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.intellij.psi.PsiModifier
66
import com.intellij.psi.SyntheticElement
77
import com.intellij.refactoring.util.classMembers.MemberInfo
88
import com.intellij.testIntegration.TestIntegrationUtils
9+
import org.jetbrains.kotlin.asJava.elements.KtLightMember
910
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
1011
import org.jetbrains.kotlin.asJava.elements.isGetter
1112
import org.jetbrains.kotlin.asJava.elements.isSetter
@@ -23,6 +24,9 @@ private val PsiMember.isKotlinGetterOrSetter: Boolean
2324
return isGetter || isSetter
2425
}
2526

27+
private val PsiMember.isKotlinAndProtected: Boolean
28+
get() = this is KtLightMember<*> && this.hasModifierProperty(PsiModifier.PROTECTED)
29+
2630
// By now, we think that method in Kotlin is autogenerated iff navigation to its declaration leads to its declaring class
2731
// rather than the method itself (because such methods don't have bodies that we can navigate to)
2832
private val PsiMember.isKotlinAutogeneratedMethod: Boolean
@@ -34,6 +38,7 @@ fun Iterable<MemberInfo>.filterTestableMethods(): List<MemberInfo> = this
3438
}
3539
.filterNot { it.member.isAbstract }
3640
.filterNot { it.member.isKotlinGetterOrSetter }
41+
.filterNot { it.member.isKotlinAndProtected }
3742

3843
private val PsiClass.isPrivateOrProtected: Boolean
3944
get() = this.modifierList?.let {

0 commit comments

Comments
 (0)