JVM IR: replace unoverridden Number.toChar with toInt().toChar()

This fixes failing tests for JVM_IR in
`box/primitiveTypes/numberToChar`.

 #KT-23447 Fixed
 #KT-46465
This commit is contained in:
Alexander Udalov
2023-03-02 23:00:03 +01:00
committed by Space Team
parent a962ec4553
commit e56e058b7b
4 changed files with 70 additions and 9 deletions
@@ -162,8 +162,11 @@ class IrIntrinsicMethods(val irBuiltIns: IrBuiltIns, val symbols: JvmSymbols) {
private fun binaryOp(methodName: String, opcode: Int) = binaryFunForPrimitivesAcrossPrimitives(methodName, BinaryOp(opcode))
private fun numberConversionMethods(): List<Pair<Key, IntrinsicMethod>> =
PrimitiveType.NUMBER_TYPES.flatMap { type -> numberConversionMethods(type.symbol) } +
numberConversionMethods(irBuiltIns.numberClass)
PrimitiveType.NUMBER_TYPES.flatMap { type ->
OperatorConventions.NUMBER_CONVERSIONS.map { method ->
createKeyMapping(NumberCast, type.symbol, method.asString())
}
}
private fun arrayMethods(): List<Pair<Key, IntrinsicMethod>> =
symbols.primitiveArraysToPrimitiveTypes.flatMap { (array, primitiveType) -> arrayMethods(primitiveType.symbol, array) } +
@@ -234,12 +237,5 @@ class IrIntrinsicMethods(val irBuiltIns: IrBuiltIns, val symbols: JvmSymbols) {
): Pair<Key, IntrinsicMethod> =
Key(klass.owner.fqNameWhenAvailable!!, null, name, args.map { getParameterFqName(it) }) to
intrinsic
private fun numberConversionMethods(numberClass: IrClassSymbol) =
OperatorConventions.NUMBER_CONVERSIONS.map { method ->
createKeyMapping(NumberCast, numberClass, method.asString())
}
}
}