diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt index 7283b98a7bc..5fc3150c31f 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt @@ -194,7 +194,7 @@ class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringPass { return IrFieldImpl( enumEntry.startOffset, enumEntry.endOffset, JvmLoweredDeclarationOrigin.FIELD_FOR_ENUM_ENTRY, fieldPropertyDescriptor, - IrExpressionBodyImpl(enumEntryInitializer.startOffset, enumEntryInitializer.endOffset, enumEntryInitializer) + IrExpressionBodyImpl(enumEntryInitializer) ) } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt index 3f463c912e9..81fbcb1b849 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt @@ -45,7 +45,7 @@ class BodyGenerator(val scopeOwner: DeclarationDescriptor, override val context: val ktDefaultValue = ktParameter.defaultValue ?: continue val valueParameter = getOrFail(BindingContext.VALUE_PARAMETER, ktParameter) as? ValueParameterDescriptor ?: continue val irDefaultValue = statementGenerator.generateExpression(ktDefaultValue) - irFunction.putDefault(valueParameter, IrExpressionBodyImpl(ktDefaultValue.startOffset, ktDefaultValue.endOffset, irDefaultValue)) + irFunction.putDefault(valueParameter, IrExpressionBodyImpl(irDefaultValue)) } } @@ -64,8 +64,7 @@ class BodyGenerator(val scopeOwner: DeclarationDescriptor, override val context: } fun generatePropertyInitializerBody(ktInitializer: KtExpression): IrExpressionBody = - IrExpressionBodyImpl(ktInitializer.startOffset, ktInitializer.endOffset, - createStatementGenerator().generateExpression(ktInitializer)) + IrExpressionBodyImpl(createStatementGenerator().generateExpression(ktInitializer)) fun generateLambdaBody(ktFun: KtFunctionLiteral): IrBody { val statementGenerator = createStatementGenerator() diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt index a96f1dafbbf..185d3c94bd3 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt @@ -60,7 +60,7 @@ class PropertyGenerator(val declarationGenerator: DeclarationGenerator) : Genera val irField = IrFieldImpl(ktParameter.startOffset, ktParameter.endOffset, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, propertyDescriptor) val irGetParameter = IrGetValueImpl(ktParameter.startOffset, ktParameter.endOffset, valueParameterDescriptor, IrStatementOrigin.INITIALIZE_PROPERTY_FROM_PARAMETER) - irField.initializer = IrExpressionBodyImpl(ktParameter.startOffset, ktParameter.endOffset, irGetParameter) + irField.initializer = IrExpressionBodyImpl(irGetParameter) irProperty.backingField = irField val getter = propertyDescriptor.getter ?: diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt index e35ae21f89c..04607d2d4f0 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrExpressionBodyImpl.kt @@ -27,6 +27,8 @@ class IrExpressionBodyImpl(startOffset: Int, endOffset: Int) : IrElementBase(sta this.expression = expression } + constructor(expression: IrExpression) : this(expression.startOffset, expression.endOffset, expression) + override lateinit var expression: IrExpression override fun accept(visitor: IrElementVisitor, data: D): R = diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt index 56050e1e28b..3abfe6d134a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt @@ -178,10 +178,7 @@ open class DeepCopyIrTree : IrElementTransformerVoid() { throw IllegalArgumentException("Unsupported body type: $body") override fun visitExpressionBody(body: IrExpressionBody): IrExpressionBody = - IrExpressionBodyImpl( - body.startOffset, body.endOffset, - body.expression.transform(this, null) - ) + IrExpressionBodyImpl(body.expression.transform(this, null)) override fun visitBlockBody(body: IrBlockBody): IrBlockBody = IrBlockBodyImpl(