diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/symbols/StandardClassIds.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/symbols/StandardClassIds.kt index 6463edddba8..72cddddb55a 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/symbols/StandardClassIds.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/symbols/StandardClassIds.kt @@ -16,6 +16,7 @@ object StandardClassIds { val Nothing = "Nothing".baseId() val Any = "Any".baseId() + val Array = "Array".baseId() val Boolean = "Boolean".baseId() val Char = "Char".baseId() @@ -30,4 +31,5 @@ object StandardClassIds { val Float = "Float".baseId() val Double = "Double".baseId() + fun byName(name: String) = name.baseId() } \ No newline at end of file diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index 37ebe4dc485..63227a8c097 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.resolve.constructType import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTagImpl +import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* @@ -98,13 +99,13 @@ internal fun JavaType?.toConeKotlinTypeWithNullability(session: FirSession, isNu null -> "Unit" else -> javaName.capitalize() } - val classId = ClassId(FqName("kotlin"), FqName(kotlinPrimitiveName), false) + val classId = StandardClassIds.byName(kotlinPrimitiveName) classId.toConeKotlinType(emptyArray(), isNullable) } is JavaArrayType -> { val componentType = componentType if (componentType !is JavaPrimitiveType) { - val classId = ClassId(FqName("kotlin"), FqName("Array"), false) + val classId = StandardClassIds.Array val argumentType = ConeFlexibleType( componentType.toConeKotlinTypeWithNullability(session, isNullable = false), componentType.toConeKotlinTypeWithNullability(session, isNullable = true) @@ -112,16 +113,16 @@ internal fun JavaType?.toConeKotlinTypeWithNullability(session: FirSession, isNu classId.toConeKotlinType(arrayOf(argumentType), isNullable) } else { val javaComponentName = componentType.type?.typeName?.asString()?.capitalize() ?: error("Array of voids") - val classId = ClassId(FqName("kotlin"), FqName(javaComponentName + "Array"), false) + val classId = StandardClassIds.byName(javaComponentName + "Array") classId.toConeKotlinType(emptyArray(), isNullable) } } is JavaWildcardType -> bound?.toNotNullConeKotlinType(session) ?: run { - val classId = ClassId(FqName("kotlin"), FqName("Any"), false) + val classId = StandardClassIds.Any classId.toConeKotlinType(emptyArray(), isNullable) } null -> { - val classId = ClassId(FqName("kotlin"), FqName("Any"), false) + val classId = StandardClassIds.Any classId.toConeKotlinType(emptyArray(), isNullable) } else -> error("Strange JavaType: ${this::class.java}")