[Private fake overrides] Renamed FakeOverrideBuilder object to FakeOverrideBuilderForLowering
This commit is contained in:
@@ -449,20 +449,16 @@ val IrFunction.allParameters: List<IrValueParameter>
|
|||||||
val IrFunction.allParametersCount: Int
|
val IrFunction.allParametersCount: Int
|
||||||
get() = if (this is IrConstructor) explicitParametersCount + 1 else explicitParametersCount
|
get() = if (this is IrConstructor) explicitParametersCount + 1 else explicitParametersCount
|
||||||
|
|
||||||
private object FakeOverrideBuilder : FakeOverrideBuilderStrategy() {
|
// This is essentially the same as FakeOverrideBuilder,
|
||||||
override fun linkFakeOverride(fakeOverride: IrOverridableMember) {
|
// but it bypasses SymbolTable.
|
||||||
when (fakeOverride) {
|
// TODO: merge it with FakeOverrideBuilder.
|
||||||
is IrFakeOverrideFunction -> linkFunctionFakeOverride(fakeOverride)
|
private object FakeOverrideBuilderForLowerings : FakeOverrideBuilderStrategy() {
|
||||||
is IrFakeOverrideProperty -> linkPropertyFakeOverride(fakeOverride)
|
|
||||||
else -> error("Unexpected fake override: $fakeOverride")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction) {
|
override fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction) {
|
||||||
declaration.acquireSymbol(IrSimpleFunctionSymbolImpl(WrappedSimpleFunctionDescriptor()))
|
declaration.acquireSymbol(IrSimpleFunctionSymbolImpl(WrappedSimpleFunctionDescriptor()))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty) {
|
override fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty) {
|
||||||
val propertySymbol = IrPropertySymbolImpl(WrappedPropertyDescriptor())
|
val propertySymbol = IrPropertySymbolImpl(WrappedPropertyDescriptor())
|
||||||
declaration.getter?.let { it.correspondingPropertySymbol = propertySymbol }
|
declaration.getter?.let { it.correspondingPropertySymbol = propertySymbol }
|
||||||
declaration.setter?.let { it.correspondingPropertySymbol = propertySymbol }
|
declaration.setter?.let { it.correspondingPropertySymbol = propertySymbol }
|
||||||
@@ -481,7 +477,7 @@ private object FakeOverrideBuilder : FakeOverrideBuilderStrategy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun IrClass.addFakeOverrides(irBuiltIns: IrBuiltIns, implementedMembers: List<IrOverridableMember> = emptyList()) {
|
fun IrClass.addFakeOverrides(irBuiltIns: IrBuiltIns, implementedMembers: List<IrOverridableMember> = emptyList()) {
|
||||||
IrOverridingUtil(irBuiltIns, FakeOverrideBuilder)
|
IrOverridingUtil(irBuiltIns, FakeOverrideBuilderForLowerings)
|
||||||
.buildFakeOverridesForClassUsingOverriddenSymbols(this, implementedMembers)
|
.buildFakeOverridesForClassUsingOverriddenSymbols(this, implementedMembers)
|
||||||
.forEach { addChild(it) }
|
.forEach { addChild(it) }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user