Minor: remove unused FirOverrideService methods
This commit is contained in:
@@ -19,46 +19,9 @@ import org.jetbrains.kotlin.fir.types.ConeFlexibleType
|
|||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.typeContext
|
import org.jetbrains.kotlin.fir.types.typeContext
|
||||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||||
import org.jetbrains.kotlin.utils.SmartSet
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class FirOverrideService(val session: FirSession) : FirSessionComponent {
|
class FirOverrideService(val session: FirSession) : FirSessionComponent {
|
||||||
fun <D : FirCallableSymbol<*>> selectMostSpecificInEachOverridableGroup(
|
|
||||||
members: Collection<MemberWithBaseScope<D>>,
|
|
||||||
overrideChecker: FirOverrideChecker,
|
|
||||||
returnTypeCalculator: ReturnTypeCalculator
|
|
||||||
): Collection<MemberWithBaseScope<D>> {
|
|
||||||
if (members.size <= 1) return members
|
|
||||||
val queue = LinkedList(members)
|
|
||||||
val result = SmartSet.create<MemberWithBaseScope<D>>()
|
|
||||||
|
|
||||||
while (queue.isNotEmpty()) {
|
|
||||||
val nextHandle = queue.first()
|
|
||||||
|
|
||||||
val conflictedHandles = SmartSet.create<MemberWithBaseScope<D>>()
|
|
||||||
|
|
||||||
val overridableGroup = extractBothWaysOverridable(nextHandle, queue, overrideChecker)
|
|
||||||
|
|
||||||
if (overridableGroup.size == 1 && conflictedHandles.isEmpty()) {
|
|
||||||
result.add(overridableGroup.single())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
val mostSpecific = selectMostSpecificMember(overridableGroup, returnTypeCalculator)
|
|
||||||
|
|
||||||
overridableGroup.filterNotTo(conflictedHandles) {
|
|
||||||
isMoreSpecificOrEqual(mostSpecific, it, returnTypeCalculator)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (conflictedHandles.isNotEmpty()) {
|
|
||||||
result.addAll(conflictedHandles)
|
|
||||||
}
|
|
||||||
|
|
||||||
result.add(mostSpecific)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <D : FirCallableSymbol<*>> createOverridableGroups(
|
fun <D : FirCallableSymbol<*>> createOverridableGroups(
|
||||||
members: Collection<MemberWithBaseScope<D>>,
|
members: Collection<MemberWithBaseScope<D>>,
|
||||||
overrideChecker: FirOverrideChecker
|
overrideChecker: FirOverrideChecker
|
||||||
@@ -133,11 +96,6 @@ class FirOverrideService(val session: FirSession) : FirSessionComponent {
|
|||||||
return maximums.map { it.memberWithBaseScope }
|
return maximums.map { it.memberWithBaseScope }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <D : FirCallableSymbol<*>> selectMostSpecificMember(
|
|
||||||
overridables: List<MemberWithBaseScope<D>>,
|
|
||||||
returnTypeCalculator: ReturnTypeCalculator
|
|
||||||
): MemberWithBaseScope<D> = selectMostSpecificMembers(overridables, returnTypeCalculator).first()
|
|
||||||
|
|
||||||
private fun <E> MutableList<E>.removeFlagged(flags: BooleanArray) {
|
private fun <E> MutableList<E>.removeFlagged(flags: BooleanArray) {
|
||||||
var dest = 0
|
var dest = 0
|
||||||
for (i in flags.indices) {
|
for (i in flags.indices) {
|
||||||
@@ -150,14 +108,6 @@ class FirOverrideService(val session: FirSession) : FirSessionComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isMoreSpecificOrEqual(
|
|
||||||
a: MemberWithBaseScope<*>,
|
|
||||||
b: MemberWithBaseScope<*>,
|
|
||||||
returnTypeCalculator: ReturnTypeCalculator
|
|
||||||
) = MemberWithBaseScopeAndReturnType(a, returnTypeCalculator).compareTo(MemberWithBaseScopeAndReturnType(b, returnTypeCalculator)).let {
|
|
||||||
it != null && it >= 0
|
|
||||||
}
|
|
||||||
|
|
||||||
private class MemberWithBaseScopeAndReturnType<out D : FirCallableSymbol<*>>(
|
private class MemberWithBaseScopeAndReturnType<out D : FirCallableSymbol<*>>(
|
||||||
val memberWithBaseScope: MemberWithBaseScope<D>,
|
val memberWithBaseScope: MemberWithBaseScope<D>,
|
||||||
returnTypeCalculator: ReturnTypeCalculator
|
returnTypeCalculator: ReturnTypeCalculator
|
||||||
|
|||||||
Reference in New Issue
Block a user