From 42daeaaa80fcd191e300007e0313b49fc6150343 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 13 Feb 2023 14:37:36 +0100 Subject: [PATCH] IR: remove IrCallableReference.referencedName It was added in 66da676b9e to avoid dependency on descriptors, but now it doesn't use descriptors anyway, so it's better to inline it than have it in the interface. --- .../kotlin/backend/jvm/lower/PropertyReferenceLowering.kt | 4 ++-- .../jetbrains/kotlin/ir/expressions/IrCallableReference.kt | 5 +---- .../kotlin/ir/expressions/impl/IrFunctionReferenceImpl.kt | 4 ---- .../impl/IrLocalDelegatedPropertyReferenceImpl.kt | 4 ---- .../kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt | 4 ---- .../src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt | 2 +- .../src/org/jetbrains/kotlin/ir/generator/IrTree.kt | 2 -- 7 files changed, 4 insertions(+), 21 deletions(-) diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt index f7ec2037993..f495ab23f42 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt @@ -348,7 +348,7 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : IrEle var index = 0 receiver?.let { call.putValueArgument(index++, it) } call.putValueArgument(index++, containerClass) - call.putValueArgument(index++, irString(expression.referencedName.asString())) + call.putValueArgument(index++, irString((expression.symbol.owner as IrDeclarationWithName).name.asString())) call.putValueArgument(index++, computeSignatureString(expression)) if (useOptimizedSuperClass) { val isPackage = (container is IrClass && container.isFileClass) || container is IrPackageFragment @@ -407,7 +407,7 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : IrEle val getName = superClass.functions.single { it.name.asString() == "getName" } val getOwner = superClass.functions.single { it.name.asString() == "getOwner" } val getSignature = superClass.functions.single { it.name.asString() == "getSignature" } - referenceClass.addOverride(getName) { irString(expression.referencedName.asString()) } + referenceClass.addOverride(getName) { irString((expression.symbol.owner as IrDeclarationWithName).name.asString()) } referenceClass.addOverride(getOwner) { calculateOwner(expression.propertyContainer) } referenceClass.addOverride(getSignature) { computeSignatureString(expression) } } diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrCallableReference.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrCallableReference.kt index f6ec3e6b7ef..bd47e47308b 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrCallableReference.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrCallableReference.kt @@ -9,12 +9,9 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.symbols.IrSymbol -import org.jetbrains.kotlin.name.Name /** * A non-leaf IR tree element. * @sample org.jetbrains.kotlin.ir.generator.IrTree.callableReference */ -abstract class IrCallableReference : IrMemberAccessExpression() { - abstract val referencedName: Name -} +abstract class IrCallableReference : IrMemberAccessExpression() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionReferenceImpl.kt index 3a191e82a4b..2545c1fe400 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrFunctionReferenceImpl.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.ir.expressions.IrFunctionReference import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.name.Name class IrFunctionReferenceImpl( override val startOffset: Int, @@ -34,9 +33,6 @@ class IrFunctionReferenceImpl( override val reflectionTarget: IrFunctionSymbol? = symbol, override val origin: IrStatementOrigin? = null, ) : IrFunctionReference() { - override val referencedName: Name - get() = symbol.owner.name - override val typeArgumentsByIndex: Array = arrayOfNulls(typeArgumentsCount) override val argumentsByParameterIndex: Array = arrayOfNulls(valueArgumentsCount) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt index e2a1bc5fd17..df171c2f13c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrLocalDelegatedPropertyReferenceImpl.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.name.Name class IrLocalDelegatedPropertyReferenceImpl( override val startOffset: Int, @@ -42,7 +41,4 @@ class IrLocalDelegatedPropertyReferenceImpl( override val valueArgumentsCount: Int get() = 0 - - override val referencedName: Name - get() = symbol.owner.name } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt index 6a9a66bce8f..b3678c41ffa 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrPropertyReferenceImpl.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.name.Name class IrPropertyReferenceImpl( override val startOffset: Int, @@ -43,7 +42,4 @@ class IrPropertyReferenceImpl( override val valueArgumentsCount: Int get() = 0 - - override val referencedName: Name - get() = symbol.owner.name } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt index edde271bb6d..69781eedfa5 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt @@ -1401,7 +1401,7 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption } printMemberAccessExpressionWithNoIndent( - referencedName.asString(), // effectively it's same as `symbol.owner.name.asString()` + (symbol.owner as IrDeclarationWithName).name.asString(), valueParameters, superQualifierSymbol = null, omitAllBracketsIfNoArguments = true, 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 f9938ffed1e..4bdee733d68 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 @@ -688,8 +688,6 @@ object IrTree : AbstractTreeBuilder() { val s = +param("S", symbolType) parent(memberAccessExpression.withArgs("S" to s)) - - +field("referencedName", type()) } val functionReference: ElementConfig by element(Expression) { visitorParent = callableReference