rra/zhelenskiy/flattening_impl
[IR] Remove unused MFVC getters Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179 [IR] Add context receivers test, fix a flattening fields bug Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179 [IR] Support `try` for MFVC #KT-1179 [IR] Support `if` and `when` for MFVC, fix several bugs, refactor #KT-1179 [IR] Rename MFVC tests + Add test for get-field optimization #KT-1179 [IR] Suppress temporary test failing on Android Bug is fixed in https://jetbrains.team/p/kt/reviews/6452 #KT-1179 [IR] Document the new MFVC lowering classes when necessary #KT-1179 [IR] Correct work of the new MFVC lowering classes #KT-1179 [IR] Prepare MFVC-lowering for the new MFVC classes #KT-1179 [IR] Fix MFVC with type arguments/parameters #KT-1179 [IR] Support MFVC with type parameters #KT-1179 [IR] Integrate MFVC with Inline classes #KT-1179 [IR] Fix compilation of MFVC in different module #KT-1179 [IR] Add MFVC generation tests #KT-1179 [IR] Implement equals call correct generation for MFVC #KT-1179 [IR] Implement bridges generation for MFVC #KT-1179 [IR] Implement MFVC basic flattening #KT-1179 Merge-request: KT-MR-6213 Merged-by: Evgeniy Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
5c9802ae84
commit
b7f5c039a6
@@ -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
|
||||
|
||||
@@ -43,6 +43,9 @@ interface IrDeclarationOrigin {
|
||||
object GENERATED_DATA_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_DATA_CLASS_MEMBER")
|
||||
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")
|
||||
|
||||
@@ -128,7 +128,7 @@ abstract class DataClassMembersGenerator(
|
||||
fun generateEqualsMethodBody(properties: List<IrProperty>) {
|
||||
val irType = irClass.defaultType
|
||||
|
||||
if (!irClass.isSingleFieldValueClass) {
|
||||
if (!irClass.isValue) {
|
||||
+irIfThenReturnTrue(irEqeqeq(irThis(), irOther()))
|
||||
}
|
||||
+irIfThenReturnFalse(irNotIs(irOther(), irType))
|
||||
|
||||
Reference in New Issue
Block a user