From 294e7dd902b1923464c39b2cb2ad739724900614 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Wed, 21 Oct 2020 22:27:19 +0300 Subject: [PATCH] [Private fake overrides] Renamed FakeOverrideBuilder object to FakeOverrideBuilderForLowering --- .../kotlin/backend/common/ir/IrUtils.kt | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt index d82fce54e8f..8b6cf1594fb 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt @@ -449,20 +449,16 @@ val IrFunction.allParameters: List val IrFunction.allParametersCount: Int get() = if (this is IrConstructor) explicitParametersCount + 1 else explicitParametersCount -private object FakeOverrideBuilder : FakeOverrideBuilderStrategy() { - override fun linkFakeOverride(fakeOverride: IrOverridableMember) { - when (fakeOverride) { - is IrFakeOverrideFunction -> linkFunctionFakeOverride(fakeOverride) - is IrFakeOverrideProperty -> linkPropertyFakeOverride(fakeOverride) - else -> error("Unexpected fake override: $fakeOverride") - } - } +// This is essentially the same as FakeOverrideBuilder, +// but it bypasses SymbolTable. +// TODO: merge it with FakeOverrideBuilder. +private object FakeOverrideBuilderForLowerings : FakeOverrideBuilderStrategy() { - private fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction) { + override fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction) { declaration.acquireSymbol(IrSimpleFunctionSymbolImpl(WrappedSimpleFunctionDescriptor())) } - private fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty) { + override fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty) { val propertySymbol = IrPropertySymbolImpl(WrappedPropertyDescriptor()) declaration.getter?.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 = emptyList()) { - IrOverridingUtil(irBuiltIns, FakeOverrideBuilder) + IrOverridingUtil(irBuiltIns, FakeOverrideBuilderForLowerings) .buildFakeOverridesForClassUsingOverriddenSymbols(this, implementedMembers) .forEach { addChild(it) } }