[K/N] Avoid using deprecated functions in data class generated methods
^KT-58267
This commit is contained in:
committed by
Space Team
parent
2f3947d8e5
commit
11e1bcca1d
+3
-3
@@ -321,13 +321,13 @@ internal class KonanSymbols(
|
||||
}
|
||||
|
||||
val arrayContentToString = arrayToExtensionSymbolMap("contentToString") {
|
||||
lookup.isExtensionReceiverNullable(it) == false
|
||||
lookup.isExtensionReceiverNullable(it) == true
|
||||
}
|
||||
val arrayContentHashCode = arrayToExtensionSymbolMap("contentHashCode") {
|
||||
lookup.isExtensionReceiverNullable(it) == false
|
||||
lookup.isExtensionReceiverNullable(it) == true
|
||||
}
|
||||
val arrayContentEquals = arrayToExtensionSymbolMap("contentEquals") {
|
||||
lookup.isExtensionReceiverNullable(it) == false
|
||||
lookup.isExtensionReceiverNullable(it) == true
|
||||
}
|
||||
|
||||
override val arraysContentEquals by lazy { arrayContentEquals.mapKeys { it.key.defaultType } }
|
||||
|
||||
+3
-21
@@ -6,17 +6,15 @@
|
||||
package org.jetbrains.kotlin.backend.konan.lower
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||
import org.jetbrains.kotlin.backend.common.lower.at
|
||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||
import org.jetbrains.kotlin.backend.common.lower.irBlock
|
||||
import org.jetbrains.kotlin.backend.konan.Context
|
||||
import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.builders.*
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
||||
import org.jetbrains.kotlin.ir.types.isNullable
|
||||
import org.jetbrains.kotlin.ir.util.irCall
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
|
||||
@@ -56,24 +54,8 @@ internal class DataClassOperatorsLowering(val context: Context) : FileLoweringPa
|
||||
// TODO: use more precise type arguments.
|
||||
val typeArguments = (0 until newCallee.typeParameters.size).map { irBuiltins.anyNType }
|
||||
|
||||
if (!argument.type.isNullable()) {
|
||||
irCall(newCallee, typeArguments).apply {
|
||||
extensionReceiver = argument
|
||||
}
|
||||
} else {
|
||||
irBlock(argument) {
|
||||
val tmp = irTemporary(argument)
|
||||
val call = irCall(newCallee, typeArguments).apply {
|
||||
extensionReceiver = irGet(tmp)
|
||||
}
|
||||
+irIfThenElse(call.type,
|
||||
irEqeqeq(irGet(tmp), irNull()),
|
||||
if (isToString)
|
||||
irString("null")
|
||||
else
|
||||
irInt(0),
|
||||
call)
|
||||
}
|
||||
irCall(newCallee, typeArguments).apply {
|
||||
extensionReceiver = argument
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user