From 859c465b9ee98213bc842f0a824be4683303103f Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Tue, 30 Aug 2022 17:36:47 +0200 Subject: [PATCH] [IR] Rename IrFakeOverride[Function|Property] to Ir[Function|Property]WithLateBinding ^KT-53663 --- .../jvm/lower/indy/LambdaMetafactoryArguments.kt | 2 +- ...ideFunction.kt => IrFunctionWithLateBinding.kt} | 4 ++-- ...ideProperty.kt => IrPropertyWithLateBinding.kt} | 4 ++-- .../jetbrains/kotlin/ir/declarations/IrFactory.kt | 4 ++-- .../kotlin/ir/declarations/impl/IrFactoryImpl.kt | 8 ++++---- .../ir/declarations/impl/IrFactoryImplForJsIC.kt | 8 ++++---- .../kotlin/ir/declarations/impl/IrFunctionImpl.kt | 4 ++-- .../kotlin/ir/declarations/impl/IrPropertyImpl.kt | 4 ++-- .../kotlin/ir/overrides/FakeOverrideCopier.kt | 4 ++-- .../kotlin/ir/overrides/IrOverridingUtil.kt | 14 +++++++------- .../src/org/jetbrains/kotlin/ir/util/IrUtils.kt | 8 ++++---- .../org/jetbrains/kotlin/ir/generator/IrTree.kt | 4 ++-- .../backend/common/overrides/FakeOverrides.kt | 12 ++++++------ 13 files changed, 40 insertions(+), 40 deletions(-) rename compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/{IrFakeOverrideFunction.kt => IrFunctionWithLateBinding.kt} (84%) rename compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/{IrFakeOverrideProperty.kt => IrPropertyWithLateBinding.kt} (85%) diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/indy/LambdaMetafactoryArguments.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/indy/LambdaMetafactoryArguments.kt index d6505dccff5..864fbe482ff 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/indy/LambdaMetafactoryArguments.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/indy/LambdaMetafactoryArguments.kt @@ -260,7 +260,7 @@ internal class LambdaMetafactoryArgumentsBuilder( val fakeClass = context.irFactory.buildClass { name = Name.special("") } fakeClass.parent = context.ir.symbols.kotlinJvmInternalInvokeDynamicPackage val fakeInstanceMethod = buildFakeOverrideMember(samType, samMethod, fakeClass) as IrSimpleFunction - (fakeInstanceMethod as IrFakeOverrideFunction).acquireSymbol(IrSimpleFunctionSymbolImpl()) + (fakeInstanceMethod as IrFunctionWithLateBinding).acquireSymbol(IrSimpleFunctionSymbolImpl()) fakeInstanceMethod.overriddenSymbols = listOf(samMethod.symbol) // Compute signature adaptation constraints for a fake instance method signature against all relevant overrides. diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFakeOverrideFunction.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFunctionWithLateBinding.kt similarity index 84% rename from compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFakeOverrideFunction.kt rename to compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFunctionWithLateBinding.kt index 0d5230f2854..0a3960bdb5c 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFakeOverrideFunction.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFunctionWithLateBinding.kt @@ -13,9 +13,9 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol /** * A leaf IR tree element. - * @sample org.jetbrains.kotlin.ir.generator.IrTree.fakeOverrideFunction + * @sample org.jetbrains.kotlin.ir.generator.IrTree.functionWithLateBinding */ -interface IrFakeOverrideFunction : IrDeclaration { +interface IrFunctionWithLateBinding : IrDeclaration { override val symbol: IrSimpleFunctionSymbol var modality: Modality diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFakeOverrideProperty.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrPropertyWithLateBinding.kt similarity index 85% rename from compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFakeOverrideProperty.kt rename to compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrPropertyWithLateBinding.kt index 14b3b5c166e..53a0f6b0a4a 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFakeOverrideProperty.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrPropertyWithLateBinding.kt @@ -13,9 +13,9 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol /** * A leaf IR tree element. - * @sample org.jetbrains.kotlin.ir.generator.IrTree.fakeOverrideProperty + * @sample org.jetbrains.kotlin.ir.generator.IrTree.propertyWithLateBinding */ -interface IrFakeOverrideProperty : IrDeclaration { +interface IrPropertyWithLateBinding : IrDeclaration { override val symbol: IrPropertySymbol var modality: Modality diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt index c4a0d980598..af113e03ba3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt @@ -108,7 +108,7 @@ interface IrFactory { containerSource: DeserializedContainerSource? = null, ): IrSimpleFunction - fun createFakeOverrideFunction( + fun createFunctionWithLateBinding( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -153,7 +153,7 @@ interface IrFactory { containerSource: DeserializedContainerSource? = null ): IrProperty - fun createFakeOverrideProperty( + fun createPropertyWithLateBinding( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt index d209d43af85..a7a7f390240 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt @@ -132,7 +132,7 @@ abstract class AbstractIrFactoryImpl : IrFactory { containerSource, factory = this ) - override fun createFakeOverrideFunction( + override fun createFunctionWithLateBinding( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -148,7 +148,7 @@ abstract class AbstractIrFactoryImpl : IrFactory { isInfix: Boolean, isExpect: Boolean, ): IrSimpleFunction = - IrFakeOverrideFunctionImpl( + IrFunctionWithLateBindingImpl( startOffset, endOffset, origin, name, visibility, modality, returnType, isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, factory = this @@ -188,7 +188,7 @@ abstract class AbstractIrFactoryImpl : IrFactory { containerSource, factory = this ) - override fun createFakeOverrideProperty( + override fun createPropertyWithLateBinding( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -202,7 +202,7 @@ abstract class AbstractIrFactoryImpl : IrFactory { isExternal: Boolean, isExpect: Boolean, ): IrProperty = - IrFakeOverridePropertyImpl( + IrPropertyWithLateBindingImpl( startOffset, endOffset, origin, name, visibility, modality, isVar, isConst, isLateinit, isDelegated, isExternal, isExpect, factory = this diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt index d4447f5282f..ea158c90fde 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt @@ -199,7 +199,7 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst ).register() } - override fun createFakeOverrideFunction( + override fun createFunctionWithLateBinding( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -215,7 +215,7 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst isInfix: Boolean, isExpect: Boolean ): IrSimpleFunction { - return super.createFakeOverrideFunction( + return super.createFunctionWithLateBinding( startOffset, endOffset, origin, @@ -289,7 +289,7 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst ).register() } - override fun createFakeOverrideProperty( + override fun createPropertyWithLateBinding( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -303,7 +303,7 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst isExternal: Boolean, isExpect: Boolean ): IrProperty { - return super.createFakeOverrideProperty( + return super.createPropertyWithLateBinding( startOffset, endOffset, origin, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt index 63cf7bcb8b5..fa34b0841dc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt @@ -101,7 +101,7 @@ class IrFunctionImpl( } } -class IrFakeOverrideFunctionImpl( +class IrFunctionWithLateBindingImpl( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -121,7 +121,7 @@ class IrFakeOverrideFunctionImpl( startOffset, endOffset, origin, name, visibility, returnType, isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, containerSource = null, -), IrFakeOverrideFunction { +), IrFunctionWithLateBinding { override val isFakeOverride: Boolean get() = true diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt index 67d73f6b8d6..1c315bf5ef3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt @@ -77,7 +77,7 @@ class IrPropertyImpl( get() = symbol.descriptor } -class IrFakeOverridePropertyImpl( +class IrPropertyWithLateBindingImpl( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, @@ -94,7 +94,7 @@ class IrFakeOverridePropertyImpl( ) : IrPropertyCommonImpl( startOffset, endOffset, origin, name, visibility, isVar, isConst, isLateinit, isDelegated, isExternal, isExpect, containerSource = null, -), IrFakeOverrideProperty { +), IrPropertyWithLateBinding { override val isFakeOverride: Boolean get() = true diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/FakeOverrideCopier.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/FakeOverrideCopier.kt index 37de26c74ea..776f10e1ad1 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/FakeOverrideCopier.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/FakeOverrideCopier.kt @@ -48,7 +48,7 @@ class FakeOverrideCopier( } override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction = - declaration.factory.createFakeOverrideFunction( + declaration.factory.createFunctionWithLateBinding( declaration.startOffset, declaration.endOffset, IrDeclarationOrigin.FAKE_OVERRIDE, symbolRenamer.getFunctionName(declaration.symbol), @@ -68,7 +68,7 @@ class FakeOverrideCopier( override fun visitProperty(declaration: IrProperty): IrProperty = - declaration.factory.createFakeOverrideProperty( + declaration.factory.createPropertyWithLateBinding( declaration.startOffset, declaration.endOffset, IrDeclarationOrigin.FAKE_OVERRIDE, declaration.name, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/IrOverridingUtil.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/IrOverridingUtil.kt index 45b9643b6b6..3827d79209d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/IrOverridingUtil.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/overrides/IrOverridingUtil.kt @@ -24,14 +24,14 @@ abstract class FakeOverrideBuilderStrategy(private val friendModules: Map linkFunctionFakeOverride(fakeOverride, compatibilityMode) - is IrFakeOverrideProperty -> linkPropertyFakeOverride(fakeOverride, compatibilityMode) + is IrFunctionWithLateBinding -> linkFunctionFakeOverride(fakeOverride, compatibilityMode) + is IrPropertyWithLateBinding -> linkPropertyFakeOverride(fakeOverride, compatibilityMode) else -> error("Unexpected fake override: $fakeOverride") } } - protected abstract fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction, compatibilityMode: Boolean) - protected abstract fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty, compatibilityMode: Boolean) + protected abstract fun linkFunctionFakeOverride(declaration: IrFunctionWithLateBinding, compatibilityMode: Boolean) + protected abstract fun linkPropertyFakeOverride(declaration: IrPropertyWithLateBinding, compatibilityMode: Boolean) } @OptIn(ObsoleteDescriptorBasedAPI::class) // Because of the LazyIR, have to use descriptors here. @@ -376,7 +376,7 @@ class IrOverridingUtil( newModality: Modality, newVisibility: DescriptorVisibility ): IrSimpleFunction? { - require(this is IrFakeOverrideFunction) { + require(this is IrFunctionWithLateBinding) { "Unexpected fake override accessor kind: $this" } // For descriptors it gets INVISIBLE_FAKE. @@ -405,13 +405,13 @@ class IrOverridingUtil( val fakeOverride = mostSpecific.apply { when (this) { - is IrFakeOverrideProperty -> { + is IrPropertyWithLateBinding -> { this.visibility = visibility this.modality = modality this.getter = this.getter?.updateAccessorModalityAndVisibility(modality, visibility) this.setter = this.setter?.updateAccessorModalityAndVisibility(modality, visibility) } - is IrFakeOverrideFunction -> { + is IrFunctionWithLateBinding -> { this.visibility = visibility this.modality = modality } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt index d19cac8fb3b..1812596d476 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt @@ -1103,11 +1103,11 @@ val IrFunction.allParametersCount: Int // TODO: merge it with FakeOverrideBuilder. private class FakeOverrideBuilderForLowerings : FakeOverrideBuilderStrategy(emptyMap()) { - override fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction, compatibilityMode: Boolean) { + override fun linkFunctionFakeOverride(declaration: IrFunctionWithLateBinding, compatibilityMode: Boolean) { declaration.acquireSymbol(IrSimpleFunctionSymbolImpl()) } - override fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty, compatibilityMode: Boolean) { + override fun linkPropertyFakeOverride(declaration: IrPropertyWithLateBinding, compatibilityMode: Boolean) { val propertySymbol = IrPropertySymbolImpl() declaration.getter?.let { it.correspondingPropertySymbol = propertySymbol } declaration.setter?.let { it.correspondingPropertySymbol = propertySymbol } @@ -1116,11 +1116,11 @@ private class FakeOverrideBuilderForLowerings : FakeOverrideBuilderStrategy(empt declaration.getter?.let { it.correspondingPropertySymbol = declaration.symbol - linkFunctionFakeOverride(it as? IrFakeOverrideFunction ?: error("Unexpected fake override getter: $it"), compatibilityMode) + linkFunctionFakeOverride(it as? IrFunctionWithLateBinding ?: error("Unexpected fake override getter: $it"), compatibilityMode) } declaration.setter?.let { it.correspondingPropertySymbol = declaration.symbol - linkFunctionFakeOverride(it as? IrFakeOverrideFunction ?: error("Unexpected fake override setter: $it"), compatibilityMode) + linkFunctionFakeOverride(it as? IrFunctionWithLateBinding ?: error("Unexpected fake override setter: $it"), compatibilityMode) } } } diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt index 6cf338a2b09..cfe19b456eb 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt @@ -273,7 +273,7 @@ object IrTree : AbstractTreeBuilder() { baseGetter = code("error(\"Should never be called\")") } } - val fakeOverrideFunction: ElementConfig by element(Declaration) { + val functionWithLateBinding: ElementConfig by element(Declaration) { typeKind = TypeKind.Interface parent(declaration) @@ -291,7 +291,7 @@ object IrTree : AbstractTreeBuilder() { ) } } - val fakeOverrideProperty: ElementConfig by element(Declaration) { + val propertyWithLateBinding: ElementConfig by element(Declaration) { typeKind = TypeKind.Interface parent(declaration) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt index 79b2a473ebf..7a71b8d5803 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt @@ -112,12 +112,12 @@ class FakeOverrideBuilder( return true } - override fun linkFunctionFakeOverride(declaration: IrFakeOverrideFunction, compatibilityMode: Boolean) { + override fun linkFunctionFakeOverride(declaration: IrFunctionWithLateBinding, compatibilityMode: Boolean) { val signature = composeSignature(declaration, compatibilityMode) declareFunctionFakeOverride(declaration, signature) } - override fun linkPropertyFakeOverride(declaration: IrFakeOverrideProperty, compatibilityMode: Boolean) { + override fun linkPropertyFakeOverride(declaration: IrPropertyWithLateBinding, compatibilityMode: Boolean) { // To compute a signature for a property with type parameters, // we must have its accessor's correspondingProperty pointing to the property's symbol. // See IrMangleComputer.mangleTypeParameterReference() for details. @@ -139,18 +139,18 @@ class FakeOverrideBuilder( declaration.getter?.let { it.correspondingPropertySymbol = declaration.symbol - linkFunctionFakeOverride(it as? IrFakeOverrideFunction ?: error("Unexpected fake override getter: $it"), compatibilityMode) + linkFunctionFakeOverride(it as? IrFunctionWithLateBinding ?: error("Unexpected fake override getter: $it"), compatibilityMode) } declaration.setter?.let { it.correspondingPropertySymbol = declaration.symbol - linkFunctionFakeOverride(it as? IrFakeOverrideFunction ?: error("Unexpected fake override setter: $it"), compatibilityMode) + linkFunctionFakeOverride(it as? IrFunctionWithLateBinding ?: error("Unexpected fake override setter: $it"), compatibilityMode) } } private fun composeSignature(declaration: IrDeclaration, compatibleMode: Boolean) = fakeOverrideDeclarationTable.signaturer.composeSignatureForDeclaration(declaration, compatibleMode) - private fun declareFunctionFakeOverride(declaration: IrFakeOverrideFunction, signature: IdSignature) { + private fun declareFunctionFakeOverride(declaration: IrFunctionWithLateBinding, signature: IdSignature) { val parent = declaration.parentAsClass val symbol = linker.tryReferencingSimpleFunctionByLocalSignature(parent, signature) ?: symbolTable.referenceSimpleFunction(signature, false) @@ -160,7 +160,7 @@ class FakeOverrideBuilder( } } - private fun declarePropertyFakeOverride(declaration: IrFakeOverrideProperty, signature: IdSignature) { + private fun declarePropertyFakeOverride(declaration: IrPropertyWithLateBinding, signature: IdSignature) { val parent = declaration.parentAsClass val symbol = linker.tryReferencingPropertyByLocalSignature(parent, signature) ?: symbolTable.referenceProperty(signature, false)