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) { while (allMembersWithScope.size > 1) {
val maxByVisibility = findMemberWithMaxVisibility(allMembersWithScope) val maxByVisibility = findMemberWithMaxVisibility(allMembersWithScope)
val extractBothWaysWithPrivate = extractBothWaysOverridable(maxByVisibility, allMembersWithScope) val extractBothWaysWithPrivate = extractBothWaysOverridable(maxByVisibility, allMembersWithScope)
val extractedOverrides = extractBothWaysWithPrivate.filterNotTo(mutableListOf()) { val extractedOverrides = extractBothWaysWithPrivate.filterNot {
Visibilities.isPrivate((it.member.fir as FirMemberDeclaration).visibility) Visibilities.isPrivate((it.member.fir as FirMemberDeclaration).visibility)
}.takeIf { it.isNotEmpty() } ?: extractBothWaysWithPrivate }.takeIf { it.isNotEmpty() } ?: extractBothWaysWithPrivate
val baseMembersForIntersection = extractedOverrides.calcBaseMembersForIntersectionOverride() val baseMembersForIntersection = extractedOverrides.calcBaseMembersForIntersectionOverride()
@@ -194,9 +194,7 @@ class FirTypeIntersectionScope private constructor(
} }
} }
} }
val result = this.toMutableList() return filterNot { (member, _) -> member.fir.unwrapSubstitutionOverrides().symbol in baseMembers }
result.removeIf { (member, _) -> member.fir.unwrapSubstitutionOverrides().symbol in baseMembers }
return result
} }
private fun <D : FirCallableSymbol<*>> chooseIntersectionOverrideModality( private fun <D : FirCallableSymbol<*>> chooseIntersectionOverrideModality(
@@ -467,7 +465,7 @@ class FirTypeIntersectionScope private constructor(
private fun <D : FirCallableSymbol<*>> extractBothWaysOverridable( private fun <D : FirCallableSymbol<*>> extractBothWaysOverridable(
overrider: MemberWithBaseScope<D>, overrider: MemberWithBaseScope<D>,
members: MutableCollection<MemberWithBaseScope<D>> members: MutableCollection<MemberWithBaseScope<D>>
): MutableList<MemberWithBaseScope<D>> { ): List<MemberWithBaseScope<D>> {
val result = mutableListOf<MemberWithBaseScope<D>>().apply { add(overrider) } val result = mutableListOf<MemberWithBaseScope<D>>().apply { add(overrider) }
val iterator = members.iterator() val iterator = members.iterator()