[K2] Disappeared UNSUPPORTED

Prohibit Array<Nothing>

^KT-59881
This commit is contained in:
Anastasia.Nekrasova
2023-12-01 12:05:12 +00:00
committed by Space Team
parent 73a0b4eaf2
commit 85cff98a38
10 changed files with 140 additions and 50 deletions
@@ -43,12 +43,9 @@ val ConeKotlinType.isPrimitiveOrNullablePrimitive: Boolean get() = isAnyOfBuilti
val ConeKotlinType.isPrimitive: Boolean get() = isPrimitiveOrNullablePrimitive && nullability == ConeNullability.NOT_NULL
val ConeKotlinType.isPrimitiveNumberOrNullableType: Boolean
get() = isPrimitiveOrNullablePrimitive && !isBooleanOrNullableBoolean && !isCharOrNullableChar
val ConeKotlinType.isArrayType: Boolean
get() {
return isBuiltinType(StandardClassIds.Array, false) ||
StandardClassIds.primitiveArrayTypeByElementType.values.any { isBuiltinType(it, false) } ||
StandardClassIds.unsignedArrayTypeByElementType.values.any { isBuiltinType(it, false) }
}
val ConeKotlinType.isArrayType: Boolean get() = isArrayType(isNullable = false)
val ConeKotlinType.isArrayTypeOrNullableArrayType: Boolean get() = isArrayType(isNullable = null)
// Same as [KotlinBuiltIns#isNonPrimitiveArray]
val ConeKotlinType.isNonPrimitiveArray: Boolean
@@ -75,3 +72,9 @@ private fun ConeKotlinType.isAnyOfBuiltinType(classIds: Set<ClassId>): Boolean {
if (this !is ConeClassLikeType) return false
return lookupTag.classId in classIds
}
private fun ConeKotlinType.isArrayType(isNullable: Boolean?): Boolean {
return isBuiltinType(StandardClassIds.Array, isNullable) ||
StandardClassIds.primitiveArrayTypeByElementType.values.any { isBuiltinType(it, isNullable) } ||
StandardClassIds.unsignedArrayTypeByElementType.values.any { isBuiltinType(it, isNullable) }
}