[IR] Remove IrExpressionWithCopy and replace with shallowCopy method
This commit is contained in:
committed by
TeamCityServer
parent
084d824984
commit
368ac36204
+2
-1
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.util.isTrivial
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
@@ -109,7 +110,7 @@ fun StatementGenerator.generateReceiver(defaultStartOffset: Int, defaultEndOffse
|
||||
TODO("Receiver: ${receiver::class.java.simpleName}")
|
||||
}
|
||||
|
||||
if (receiverExpression is IrExpressionWithCopy)
|
||||
if (receiverExpression.isTrivial())
|
||||
RematerializableValue(receiverExpression.type, receiverExpression)
|
||||
else
|
||||
OnceExpressionValue(receiverExpression)
|
||||
|
||||
+3
-3
@@ -19,12 +19,12 @@ package org.jetbrains.kotlin.psi2ir.intermediate
|
||||
import org.jetbrains.kotlin.ir.builders.IrGeneratorContext
|
||||
import org.jetbrains.kotlin.ir.builders.Scope
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionWithCopy
|
||||
import org.jetbrains.kotlin.ir.expressions.IrStatementContainer
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.util.shallowCopy
|
||||
|
||||
class RematerializableValue(override val type: IrType, val irExpression: IrExpressionWithCopy) : IntermediateValue {
|
||||
override fun load(): IrExpression = irExpression.copy()
|
||||
class RematerializableValue(override val type: IrType, val irExpression: IrExpression) : IntermediateValue {
|
||||
override fun load(): IrExpression = irExpression.shallowCopy()
|
||||
}
|
||||
|
||||
fun Scope.createTemporaryVariableInBlock(
|
||||
|
||||
Reference in New Issue
Block a user