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