IR: repair collectAndFilterRealOverrides
This commit is contained in:
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.symbols.*
|
||||
import org.jetbrains.kotlin.ir.types.*
|
||||
import org.jetbrains.kotlin.ir.util.collectAndFilterRealOverrides
|
||||
import org.jetbrains.kotlin.ir.util.isReal
|
||||
import org.jetbrains.kotlin.ir.util.render
|
||||
import org.jetbrains.kotlin.resolve.OverridingUtil.OverrideCompatibilityInfo
|
||||
|
||||
@@ -86,9 +86,12 @@ fun <S : IrSymbol, T : IrOverridableDeclaration<S>> Collection<T>.collectAndFilt
|
||||
return realOverrides.values.toSet()
|
||||
}
|
||||
|
||||
fun Collection<IrOverridableMember>.collectAndFilterRealOverrides(): Set<IrOverridableMember> =
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
(this as Collection<IrOverridableDeclaration<*>>).collectAndFilterRealOverrides()
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun Collection<IrOverridableMember>.collectAndFilterRealOverrides(): Set<IrOverridableMember> = when {
|
||||
all { it is IrSimpleFunction } -> (this as Collection<IrSimpleFunction>).collectAndFilterRealOverrides()
|
||||
all { it is IrProperty } -> (this as Collection<IrProperty>).collectAndFilterRealOverrides()
|
||||
else -> error("all members should be of the same kind, got ${map { it.render() }}")
|
||||
}
|
||||
|
||||
// TODO: use this implementation instead of any other
|
||||
fun <S : IrSymbol, T : IrOverridableDeclaration<S>> T.resolveFakeOverride(
|
||||
|
||||
Reference in New Issue
Block a user