IR: Refactor primitive arrays handling in the new IrBuiltIns
for better compatibility e.g. with native
This commit is contained in:
committed by
TeamCityServer
parent
3b2bb2ba9f
commit
48a3c64901
@@ -150,11 +150,11 @@ abstract class Symbols<out T : CommonBackendContext>(
|
||||
val doubleArrayType get() = doubleArray.owner.defaultType
|
||||
val booleanArrayType get() = booleanArray.owner.defaultType
|
||||
|
||||
val primitiveArrays get() = irBuiltIns.primitiveArrays
|
||||
val primitiveArrays get() = irBuiltIns.primitiveTypesToPrimitiveArrays
|
||||
val primitiveArraysToPrimitiveTypes get() = irBuiltIns.primitiveArraysToPrimitiveTypes
|
||||
val unsignedArrays get() = irBuiltIns.unsignedArrays
|
||||
val unsignedArrays get() = irBuiltIns.unsignedTypesToUnsignedArrays
|
||||
|
||||
val arrays = primitiveArrays + unsignedArrays + array
|
||||
val arrays = primitiveArrays.values + unsignedArrays.values + array
|
||||
|
||||
val collection get() = irBuiltIns.collectionClass
|
||||
val set get() = irBuiltIns.setClass
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ private class ArrayConstructorTransformer(
|
||||
return when {
|
||||
irConstructor.valueParameters.size != 2 -> null
|
||||
clazz == context.irBuiltIns.arrayClass -> context.ir.symbols.arrayOfNulls // Array<T> has no unary constructor: it can only exist for Array<T?>
|
||||
context.irBuiltIns.primitiveArrays.contains(clazz) -> clazz.constructors.single { it.owner.valueParameters.size == 1 }
|
||||
context.irBuiltIns.primitiveArraysToPrimitiveTypes.contains(clazz) -> clazz.constructors.single { it.owner.valueParameters.size == 1 }
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user