FirTypeIntersectionScope: minor mutability refactoring

This commit is contained in:
Mikhail Glukhikh
2021-12-01 10:54:16 +03:00
parent 59ec10eb9c
commit a4f7bee9ad
@@ -102,7 +102,7 @@ class FirTypeIntersectionScope private constructor(
while (allMembersWithScope.size > 1) {
val maxByVisibility = findMemberWithMaxVisibility(allMembersWithScope)
val extractBothWaysWithPrivate = extractBothWaysOverridable(maxByVisibility, allMembersWithScope)
val extractedOverrides = extractBothWaysWithPrivate.filterNotTo(mutableListOf()) {
val extractedOverrides = extractBothWaysWithPrivate.filterNot {
Visibilities.isPrivate((it.member.fir as FirMemberDeclaration).visibility)
}.takeIf { it.isNotEmpty() } ?: extractBothWaysWithPrivate
val baseMembersForIntersection = extractedOverrides.calcBaseMembersForIntersectionOverride()
@@ -194,9 +194,7 @@ class FirTypeIntersectionScope private constructor(
}
}
}
val result = this.toMutableList()
result.removeIf { (member, _) -> member.fir.unwrapSubstitutionOverrides().symbol in baseMembers }
return result
return filterNot { (member, _) -> member.fir.unwrapSubstitutionOverrides().symbol in baseMembers }
}
private fun <D : FirCallableSymbol<*>> chooseIntersectionOverrideModality(
@@ -467,7 +465,7 @@ class FirTypeIntersectionScope private constructor(
private fun <D : FirCallableSymbol<*>> extractBothWaysOverridable(
overrider: MemberWithBaseScope<D>,
members: MutableCollection<MemberWithBaseScope<D>>
): MutableList<MemberWithBaseScope<D>> {
): List<MemberWithBaseScope<D>> {
val result = mutableListOf<MemberWithBaseScope<D>>().apply { add(overrider) }
val iterator = members.iterator()