JVM_IR optimize temporary vals initialized with other vals

This commit is contained in:
Dmitry Petrov
2021-08-23 14:37:28 +03:00
committed by TeamCityServer
parent 939f25333e
commit 568958492a
12 changed files with 422 additions and 380 deletions
@@ -16,16 +16,16 @@
package org.jetbrains.kotlin.ir.expressions
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
import org.jetbrains.kotlin.ir.symbols.IrValueSymbol
import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol
abstract class IrValueAccessExpression : IrDeclarationReference() {
abstract override val symbol: IrValueSymbol
abstract val origin: IrStatementOrigin?
}
abstract class IrGetValue : IrValueAccessExpression()
abstract class IrGetValue : IrValueAccessExpression() {
abstract fun copyWithOffsets(newStartOffset: Int, newEndOffset: Int): IrGetValue
}
abstract class IrSetValue : IrValueAccessExpression() {
abstract override val symbol: IrValueSymbol
@@ -27,4 +27,7 @@ class IrGetValueImpl(
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
visitor.visitGetValue(this, data)
override fun copyWithOffsets(newStartOffset: Int, newEndOffset: Int): IrGetValue =
IrGetValueImpl(newStartOffset, newEndOffset, type, symbol, origin)
}