diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt index 9f1920f7e72..7c91ad543b4 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/ExpressionHelpers.kt @@ -295,3 +295,42 @@ fun IrBuilderWithScope.irSetField(receiver: IrExpression, irField: IrField, valu value = value, type = context.irBuiltIns.unitType ) + +inline fun IrBuilderWithScope.irBlock( + startOffset: Int = this.startOffset, + endOffset: Int = this.endOffset, + origin: IrStatementOrigin? = null, + resultType: IrType? = null, + body: IrBlockBuilder.() -> Unit +): IrExpression = + IrBlockBuilder( + context, scope, + startOffset, + endOffset, + origin, resultType + ).block(body) + +inline fun IrBuilderWithScope.irComposite( + startOffset: Int = this.startOffset, + endOffset: Int = this.endOffset, + origin: IrStatementOrigin? = null, + resultType: IrType? = null, + body: IrBlockBuilder.() -> Unit +): IrExpression = + IrBlockBuilder( + context, scope, + startOffset, + endOffset, + origin, resultType, true + ).block(body) + +inline fun IrBuilderWithScope.irBlockBody( + startOffset: Int = this.startOffset, + endOffset: Int = this.endOffset, + body: IrBlockBodyBuilder.() -> Unit +): IrBlockBody = + IrBlockBodyBuilder( + context, scope, + startOffset, + endOffset + ).blockBody(body) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/IrBuilder.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/IrBuilder.kt index 33a2e3a6cbf..e2dd41fb3d1 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/IrBuilder.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/IrBuilder.kt @@ -143,8 +143,7 @@ fun T.at(startOffset: Int, endOffset: Int) = apply { } inline fun IrGeneratorWithScope.irBlock( - startOffset: Int = UNDEFINED_OFFSET, - endOffset: Int = UNDEFINED_OFFSET, + startOffset: Int, endOffset: Int, origin: IrStatementOrigin? = null, resultType: IrType? = null, body: IrBlockBuilder.() -> Unit @@ -157,8 +156,7 @@ inline fun IrGeneratorWithScope.irBlock( ).block(body) inline fun IrGeneratorWithScope.irComposite( - startOffset: Int = UNDEFINED_OFFSET, - endOffset: Int = UNDEFINED_OFFSET, + startOffset: Int, endOffset: Int, origin: IrStatementOrigin? = null, resultType: IrType? = null, body: IrBlockBuilder.() -> Unit @@ -171,7 +169,7 @@ inline fun IrGeneratorWithScope.irComposite( ).block(body) inline fun IrGeneratorWithScope.irBlockBody( - startOffset: Int = UNDEFINED_OFFSET, endOffset: Int = UNDEFINED_OFFSET, + startOffset: Int, endOffset: Int, body: IrBlockBodyBuilder.() -> Unit ): IrBlockBody = IrBlockBodyBuilder(