@@ -17,10 +17,24 @@ private fun Iterable<MemberInfo>.filterTestableMethods(): List<MemberInfo> = thi
1717 .filterWhen(UtSettings .skipTestGenerationForSyntheticMethods) { it.member !is SyntheticElement }
1818 .filterNot { it.isAbstract }
1919
20+ private val PsiClass .isPrivateOrProtected: Boolean
21+ get() = this .modifierList?.let {
22+ hasModifierProperty(PsiModifier .PRIVATE ) || hasModifierProperty(PsiModifier .PROTECTED )
23+ } ? : false
24+
25+
2026// TODO: maybe we need to delete [includeInherited] param here (always false when calling)?
21- fun PsiClass.extractClassMethodsIncludingNested (includeInherited : Boolean ): List <MemberInfo > =
22- TestIntegrationUtils .extractClassMethods(this , includeInherited)
23- .filterTestableMethods() + innerClasses.flatMap { it.extractClassMethodsIncludingNested(includeInherited) }
27+ fun PsiClass.extractClassMethodsIncludingNested (includeInherited : Boolean ): List <MemberInfo > {
28+ val ourMethods = TestIntegrationUtils .extractClassMethods(this , includeInherited)
29+ .filterTestableMethods()
30+
31+ val methodsFromNestedClasses =
32+ innerClasses
33+ .filter { ! it.isPrivateOrProtected }
34+ .flatMap { it.extractClassMethodsIncludingNested(includeInherited) }
35+
36+ return ourMethods + methodsFromNestedClasses
37+ }
2438
2539fun PsiClass.extractFirstLevelMembers (includeInherited : Boolean ): List <MemberInfo > {
2640 val methods = TestIntegrationUtils .extractClassMethods(this , includeInherited)
@@ -29,5 +43,8 @@ fun PsiClass.extractFirstLevelMembers(includeInherited: Boolean): List<MemberInf
2943 allInnerClasses
3044 else
3145 innerClasses
32- return methods + classes.map { MemberInfo (it) }
33- }
46+ return methods + classes.filter { ! it.isPrivateOrProtected }.map { MemberInfo (it) }
47+ }
48+
49+ val PsiClass .isVisible: Boolean
50+ get() = generateSequence(this ) { it.containingClass }.none { it.isPrivateOrProtected }
0 commit comments