Move util functions from KotlinBuiltIns to :core:descriptors.common module
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.builtins
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames.FqNames.reflect
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||
@@ -205,4 +207,39 @@ object KotlinBuiltInsNames {
|
||||
return ANNOTATION_PACKAGE_FQ_NAME.child(Name.identifier(simpleName))
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getFunctionName(parameterCount: Int): String {
|
||||
return "Function$parameterCount"
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getKFunctionFqName(parameterCount: Int): FqNameUnsafe {
|
||||
return reflect(FunctionClassKind.KFunction.classNamePrefix + parameterCount)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getFunctionClassId(parameterCount: Int): ClassId {
|
||||
return ClassId(BUILT_INS_PACKAGE_FQ_NAME, Name.identifier(getFunctionName(parameterCount)))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getSuspendFunctionName(parameterCount: Int): String {
|
||||
return FunctionClassKind.SuspendFunction.classNamePrefix + parameterCount
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getSuspendFunctionClassId(parameterCount: Int): ClassId {
|
||||
return ClassId(COROUTINES_PACKAGE_FQ_NAME_RELEASE, Name.identifier(getSuspendFunctionName(parameterCount)))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun isPrimitiveArray(arrayFqName: FqNameUnsafe): Boolean {
|
||||
return FqNames.arrayClassFqNameToPrimitiveType.get(arrayFqName) != null
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getPrimitiveFqName(primitiveType: PrimitiveType): FqName {
|
||||
return BUILT_INS_PACKAGE_FQ_NAME.child(primitiveType.typeName)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.builtins.jvm
|
||||
|
||||
import org.jetbrains.kotlin.builtins.CompanionObjectMapping
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames.FqNames
|
||||
import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||
@@ -86,7 +87,7 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap {
|
||||
for (jvmType in JvmPrimitiveType.values()) {
|
||||
add(
|
||||
ClassId.topLevel(jvmType.wrapperFqName),
|
||||
ClassId.topLevel(KotlinBuiltIns.getPrimitiveFqName(jvmType.primitiveType))
|
||||
ClassId.topLevel(KotlinBuiltInsNames.getPrimitiveFqName(jvmType.primitiveType))
|
||||
)
|
||||
}
|
||||
|
||||
@@ -98,7 +99,7 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap {
|
||||
}
|
||||
|
||||
for (i in 0 until FunctionInvokeDescriptor.BIG_ARITY) {
|
||||
add(ClassId.topLevel(FqName("kotlin.jvm.functions.Function$i")), KotlinBuiltIns.getFunctionClassId(i))
|
||||
add(ClassId.topLevel(FqName("kotlin.jvm.functions.Function$i")), KotlinBuiltInsNames.getFunctionClassId(i))
|
||||
addKotlinToJava(FqName(NUMBERED_K_FUNCTION_PREFIX + i), K_FUNCTION_CLASS_ID)
|
||||
}
|
||||
for (i in 0 until FunctionInvokeDescriptor.BIG_ARITY - 1) {
|
||||
@@ -132,7 +133,7 @@ object JavaToKotlinClassMap : PlatformToKotlinClassMap {
|
||||
|
||||
fun mapJavaToKotlin(fqName: FqName, builtIns: KotlinBuiltIns, functionTypeArity: Int? = null): ClassDescriptor? {
|
||||
val kotlinClassId =
|
||||
if (functionTypeArity != null && fqName == FUNCTION_N_FQ_NAME) KotlinBuiltIns.getFunctionClassId(functionTypeArity)
|
||||
if (functionTypeArity != null && fqName == FUNCTION_N_FQ_NAME) KotlinBuiltInsNames.getFunctionClassId(functionTypeArity)
|
||||
else mapJavaToKotlin(fqName)
|
||||
return if (kotlinClassId != null) builtIns.getBuiltInClassByFqName(kotlinClassId.asSingleFqName()) else null
|
||||
}
|
||||
|
||||
@@ -339,7 +339,7 @@ open class JvmBuiltInsSettings(
|
||||
}
|
||||
|
||||
private fun isArrayOrPrimitiveArray(fqName: FqNameUnsafe): Boolean {
|
||||
return fqName == KotlinBuiltInsNames.FqNames.array || KotlinBuiltIns.isPrimitiveArray(fqName)
|
||||
return fqName == KotlinBuiltInsNames.FqNames.array || KotlinBuiltInsNames.isPrimitiveArray(fqName)
|
||||
}
|
||||
|
||||
val DROP_LIST_METHOD_SIGNATURES: Set<String> =
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.*
|
||||
|
||||
object CompanionObjectMapping {
|
||||
private val classIds =
|
||||
(PrimitiveType.NUMBER_TYPES.map(KotlinBuiltIns::getPrimitiveFqName) +
|
||||
(PrimitiveType.NUMBER_TYPES.map(KotlinBuiltInsNames::getPrimitiveFqName) +
|
||||
KotlinBuiltInsNames.FqNames.string.toSafe() +
|
||||
KotlinBuiltInsNames.FqNames._boolean.toSafe() +
|
||||
KotlinBuiltInsNames.FqNames._enum.toSafe()).mapTo(linkedSetOf<ClassId>(), ClassId::topLevel)
|
||||
|
||||
@@ -288,36 +288,11 @@ public abstract class KotlinBuiltIns {
|
||||
return getBuiltInClassByName("Unit");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getFunctionName(int parameterCount) {
|
||||
return "Function" + parameterCount;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static FqNameUnsafe getKFunctionFqName(int parameterCount) {
|
||||
return FqNames.reflect(FunctionClassKind.KFunction.getClassNamePrefix() + parameterCount);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static ClassId getFunctionClassId(int parameterCount) {
|
||||
return new ClassId(BUILT_INS_PACKAGE_FQ_NAME, Name.identifier(getFunctionName(parameterCount)));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getFunction(int parameterCount) {
|
||||
return getBuiltInClassByName(getFunctionName(parameterCount));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getSuspendFunctionName(int parameterCount) {
|
||||
return FunctionClassKind.SuspendFunction.getClassNamePrefix() + parameterCount;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static ClassId getSuspendFunctionClassId(int parameterCount) {
|
||||
return new ClassId(COROUTINES_PACKAGE_FQ_NAME_RELEASE, Name.identifier(getSuspendFunctionName(parameterCount)));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getSuspendFunction(int parameterCount) {
|
||||
return getBuiltInClassByFqName(COROUTINES_PACKAGE_FQ_NAME_RELEASE.child(Name.identifier(getSuspendFunctionName(parameterCount))));
|
||||
@@ -663,10 +638,6 @@ public abstract class KotlinBuiltIns {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isPrimitiveArray(@NotNull FqNameUnsafe arrayFqName) {
|
||||
return FqNames.arrayClassFqNameToPrimitiveType.get(arrayFqName) != null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PrimitiveType getPrimitiveType(@NotNull DeclarationDescriptor descriptor) {
|
||||
return FqNames.primitiveTypeShortNames.contains(descriptor.getName())
|
||||
@@ -985,8 +956,4 @@ public abstract class KotlinBuiltIns {
|
||||
public static boolean isNotNullOrNullableFunctionSupertype(@NotNull KotlinType type) {
|
||||
return isConstructedFromGivenClass(type, FqNames.functionSupertype);
|
||||
}
|
||||
|
||||
public static FqName getPrimitiveFqName(@NotNull PrimitiveType primitiveType) {
|
||||
return BUILT_INS_PACKAGE_FQ_NAME.child(primitiveType.getTypeName());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user