[JS IR] make InnerClassesLowering.kt work with abscent bodies

This commit is contained in:
Anton Bannykh
2021-10-12 09:13:40 +03:00
committed by teamcityserver
parent 546ce501cb
commit 1d42b6cb3f
@@ -64,7 +64,8 @@ class InnerClassesLowering(val context: BackendContext, private val innerClasses
val irClass = irConstructor.parentAsClass val irClass = irConstructor.parentAsClass
val parentThisField = innerClassesSupport.getOuterThisField(irClass) val parentThisField = innerClassesSupport.getOuterThisField(irClass)
val blockBody = irConstructor.body as? IrBlockBody ?: throw AssertionError("Unexpected constructor body: ${irConstructor.body}") irConstructor.body?.let { blockBody ->
if (blockBody !is IrBlockBody) throw AssertionError("Unexpected constructor body: ${irConstructor.body}")
loweredConstructor.body = context.irFactory.createBlockBody(blockBody.startOffset, blockBody.endOffset) { loweredConstructor.body = context.irFactory.createBlockBody(blockBody.startOffset, blockBody.endOffset) {
context.createIrBuilder(irConstructor.symbol, irConstructor.startOffset, irConstructor.endOffset).apply { context.createIrBuilder(irConstructor.symbol, irConstructor.startOffset, irConstructor.endOffset).apply {
@@ -84,6 +85,7 @@ class InnerClassesLowering(val context: BackendContext, private val innerClasses
val oldConstructorParameterToNew = innerClassesSupport.primaryConstructorParameterMap(irConstructor) val oldConstructorParameterToNew = innerClassesSupport.primaryConstructorParameterMap(irConstructor)
transformChildrenVoid(VariableRemapper(oldConstructorParameterToNew)) transformChildrenVoid(VariableRemapper(oldConstructorParameterToNew))
} }
}
return loweredConstructor return loweredConstructor
} }