[IR] Move IrFactory#createBlockBody overloads to extension methods

This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
Sergej Jaskiewicz
2023-06-14 14:58:31 +02:00
committed by Space Team
parent c7795c7863
commit 6281faa063
12 changed files with 23 additions and 32 deletions
@@ -217,16 +217,4 @@ interface IrFactory {
startOffset: Int,
endOffset: Int,
): IrBlockBody
fun createBlockBody(
startOffset: Int,
endOffset: Int,
statements: List<IrStatement>,
): IrBlockBody
fun createBlockBody(
startOffset: Int,
endOffset: Int,
initializer: IrBlockBody.() -> Unit,
): IrBlockBody
}
@@ -5,8 +5,22 @@
package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
fun IrFactory.createExpressionBody(expression: IrExpression): IrExpressionBody =
createExpressionBody(expression.startOffset, expression.endOffset, expression)
createExpressionBody(expression.startOffset, expression.endOffset, expression)
fun IrFactory.createBlockBody(
startOffset: Int,
endOffset: Int,
initializer: IrBlockBody.() -> Unit,
): IrBlockBody = createBlockBody(startOffset, endOffset).apply(initializer)
fun IrFactory.createBlockBody(
startOffset: Int,
endOffset: Int,
statements: List<IrStatement>,
): IrBlockBody = createBlockBody(startOffset, endOffset) { this.statements.addAll(statements) }
@@ -263,18 +263,4 @@ abstract class AbstractIrFactoryImpl : IrFactory {
endOffset: Int,
): IrBlockBody =
IrBlockBodyImpl(startOffset, endOffset)
override fun createBlockBody(
startOffset: Int,
endOffset: Int,
statements: List<IrStatement>,
): IrBlockBody =
IrBlockBodyImpl(startOffset, endOffset, statements)
override fun createBlockBody(
startOffset: Int,
endOffset: Int,
initializer: IrBlockBody.() -> Unit,
): IrBlockBody =
IrBlockBodyImpl(startOffset, endOffset, initializer)
}
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
import org.jetbrains.kotlin.utils.SmartList
class IrBlockBodyImpl(
override val startOffset: Int,
@@ -30,10 +29,6 @@ class IrBlockBodyImpl(
this.statements.addAll(statements)
}
constructor(startOffset: Int, endOffset: Int, initializer: IrBlockBody.() -> Unit) : this(startOffset, endOffset) {
this.initializer()
}
override val statements: MutableList<IrStatement> = ArrayList(2)
override val factory: IrFactory