IR: make IrBody and subtypes classes

This commit is contained in:
Alexander Udalov
2020-07-22 21:58:47 +02:00
parent 4351f5235b
commit 08a35f0674
6 changed files with 14 additions and 23 deletions
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.ir.expressions.impl
import org.jetbrains.kotlin.ir.IrElementBase
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
@@ -25,7 +24,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBlockBody
class IrBlockBodyImpl(
override val startOffset: Int,
override val endOffset: Int
) : IrElementBase(), IrBlockBody {
) : IrBlockBody() {
constructor(startOffset: Int, endOffset: Int, statements: List<IrStatement>) : this(startOffset, endOffset) {
this.statements.addAll(statements)
}
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.ir.expressions.impl
import org.jetbrains.kotlin.ir.IrElementBase
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.expressions.IrExpression
@@ -26,7 +25,7 @@ class IrExpressionBodyImpl(
override val startOffset: Int,
override val endOffset: Int,
initializer: (IrExpressionBody.() -> Unit)? = null
) : IrElementBase(), IrExpressionBody {
) : IrExpressionBody() {
init {
initializer?.invoke(this)
}
@@ -29,10 +29,7 @@ internal class PersistentIrBlockBody(
override val startOffset: Int,
override val endOffset: Int,
override var initializer: (PersistentIrBlockBody.() -> Unit)? = null
) :
PersistentIrBodyBase<PersistentIrBlockBody>,
IrBlockBody {
) : IrBlockBody(), PersistentIrBodyBase<PersistentIrBlockBody> {
override var lastModified: Int = stageController.currentStage
override var loweredUpTo: Int = stageController.currentStage
override var values: Array<Carrier>? = null
@@ -30,10 +30,7 @@ internal class PersistentIrExpressionBody private constructor(
override val endOffset: Int,
private var expressionField: IrExpression? = null,
override var initializer: (PersistentIrExpressionBody.() -> Unit)? = null
) :
PersistentIrBodyBase<PersistentIrExpressionBody>,
IrExpressionBody {
) : IrExpressionBody(), PersistentIrBodyBase<PersistentIrExpressionBody> {
override var lastModified: Int = stageController.currentStage
override var loweredUpTo: Int = stageController.currentStage
override var values: Array<Carrier>? = null
@@ -16,20 +16,20 @@
package org.jetbrains.kotlin.ir.expressions
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrElementBase
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
interface IrBody : IrElement {
abstract class IrBody : IrElementBase() {
override fun <D> transform(transformer: IrElementTransformer<D>, data: D): IrBody =
accept(transformer, data) as IrBody
}
interface IrExpressionBody : IrBody {
val factory: IrFactory
abstract class IrExpressionBody : IrBody() {
abstract val factory: IrFactory
var expression: IrExpression
abstract var expression: IrExpression
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
visitor.visitExpressionBody(this, data)
@@ -46,8 +46,8 @@ interface IrExpressionBody : IrBody {
}
}
interface IrBlockBody : IrBody, IrStatementContainer {
val factory: IrFactory
abstract class IrBlockBody : IrBody(), IrStatementContainer {
abstract val factory: IrFactory
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
visitor.visitBlockBody(this, data)
@@ -63,8 +63,8 @@ interface IrBlockBody : IrBody, IrStatementContainer {
}
}
interface IrSyntheticBody : IrBody {
val kind: IrSyntheticBodyKind
abstract class IrSyntheticBody : IrBody() {
abstract val kind: IrSyntheticBodyKind
}
enum class IrSyntheticBodyKind {
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.ir.expressions.impl
import org.jetbrains.kotlin.ir.IrElementBase
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBody
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
@@ -26,7 +25,7 @@ class IrSyntheticBodyImpl(
override val startOffset: Int,
override val endOffset: Int,
override val kind: IrSyntheticBodyKind
) : IrElementBase(), IrSyntheticBody {
) : IrSyntheticBody() {
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
return visitor.visitSyntheticBody(this, data)
}