[IR] Make IrGetObjectValue copyable to avoid duplicate IR nodes.

Fixes KT-45170
This commit is contained in:
Mads Ager
2021-03-04 13:54:18 +01:00
committed by Dmitry Petrov
parent e79c9a3618
commit 7dbb0c7d20
11 changed files with 59 additions and 1 deletions
@@ -27,7 +27,7 @@ abstract class IrDeclarationReference : IrExpression() {
abstract class IrGetSingletonValue : IrDeclarationReference()
abstract class IrGetObjectValue : IrGetSingletonValue() {
abstract class IrGetObjectValue : IrGetSingletonValue(), IrExpressionWithCopy {
abstract override val symbol: IrClassSymbol
}
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.ir.expressions.impl
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrGetObjectValue
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.types.IrType
@@ -29,4 +30,8 @@ class IrGetObjectValueImpl(
) : IrGetObjectValue() {
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
visitor.visitGetObjectValue(this, data)
override fun copy(): IrExpression {
return IrGetObjectValueImpl(startOffset, endOffset, type, symbol)
}
}