[IR] Correct work of the new MFVC lowering classes

#KT-1179
This commit is contained in:
Evgeniy.Zhelenskiy
2022-10-01 03:56:29 +02:00
committed by teamcity
parent 5ea1edf6d1
commit c2284d15a5
36 changed files with 4411 additions and 2968 deletions
@@ -53,11 +53,13 @@ fun <T : IrElement> IrStatementsBuilder<T>.irTemporary(
nameHint: String? = null,
irType: IrType = value?.type!!, // either value or irType should be supplied at callsite
isMutable: Boolean = false,
origin: IrDeclarationOrigin = IrDeclarationOrigin.IR_TEMPORARY_VARIABLE,
): IrVariable {
val temporary = scope.createTemporaryVariableDeclaration(
irType, nameHint, isMutable,
startOffset = startOffset,
endOffset = endOffset
endOffset = endOffset,
origin = origin,
)
value?.let { temporary.initializer = it }
+temporary
@@ -44,6 +44,8 @@ interface IrDeclarationOrigin {
object GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER")
object GENERATED_MULTI_FIELD_VALUE_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_MULTI_FIELD_VALUE_CLASS_MEMBER")
object GENERATED_MULTI_FIELD_VALUE_CLASS_PARAMETER : IrDeclarationOriginImpl("GENERATED_MULTI_FIELD_VALUE_CLASS_PARAMETER")
object TEMPORARY_MULTI_FIELD_VALUE_CLASS_VARIABLE : IrDeclarationOriginImpl("TEMPORARY_MULTI_FIELD_VALUE_CLASS_VARIABLE")
object MULTI_FIELD_VALUE_CLASS_REPRESENTATION_VARIABLE : IrDeclarationOriginImpl("MULTI_FIELD_VALUE_CLASS_REPRESENTATION_VARIABLE")
object LOCAL_FUNCTION : IrDeclarationOriginImpl("LOCAL_FUNCTION")
object LOCAL_FUNCTION_FOR_LAMBDA : IrDeclarationOriginImpl("LOCAL_FUNCTION_FOR_LAMBDA")
object CATCH_PARAMETER : IrDeclarationOriginImpl("CATCH_PARAMETER")