From 19e6e1a89ce7de6f46f8f008fb0777d05e15e192 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Mon, 31 Aug 2020 09:09:54 +0200 Subject: [PATCH] [descriptor][core][common] adaptation set of refactorings 7a7fe77b8e81c5ed9055fd5f3b40a8b353be3f2e: Move static constants with builtin names to :core:descriptors.common module 45cf221b976b12298dbe81817ec1cda3e506ee97: Move util functions from KotlinBuiltIns to :core:descriptors.common module a76473202030521debd1a331f95cf2b5cc58ddd3: Rename `KotlinBuiltInsNames` to `StandardNames` --- .../kotlin/backend/konan/KonanReflectionTypes.kt | 3 ++- .../jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt | 3 ++- .../src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt | 3 ++- .../org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt | 9 +++++---- .../kotlin/backend/konan/objcexport/CustomTypeMapper.kt | 7 ++++--- .../konan/objcexport/ObjCExportHeaderGenerator.kt | 7 ++----- .../src/org/jetbrains/kotlin/ir/util/IrUtils2.kt | 4 ++-- .../kotlin/org/jetbrains/kotlin/cli/klib/KlibPrinter.kt | 3 ++- 8 files changed, 21 insertions(+), 18 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanReflectionTypes.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanReflectionTypes.kt index e275f0e69db..db9f7a3479b 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanReflectionTypes.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanReflectionTypes.kt @@ -5,7 +5,8 @@ package org.jetbrains.kotlin.backend.konan -import org.jetbrains.kotlin.builtins.KOTLIN_REFLECT_FQ_NAME + +import org.jetbrains.kotlin.builtins.StandardNames.KOTLIN_REFLECT_FQ_NAME import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.incremental.components.NoLookupLocation diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index 8ae7e7daad4..bdfd94e182d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -43,6 +43,7 @@ import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.backend.konan.getObjCMethodInfo import org.jetbrains.kotlin.backend.konan.lower.CallableReferenceLowering +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.ir.descriptors.* internal interface KotlinStubs { @@ -762,7 +763,7 @@ private fun KotlinStubs.mapType(type: IrType, retained: Boolean, variadic: Boole mapType(type, retained, variadic, location, { reportUnsupportedType(it, type, location) }) private fun IrType.isTypeOfNullLiteral(): Boolean = this is IrSimpleType && hasQuestionMark - && classifier.isClassWithFqName(KotlinBuiltIns.FQ_NAMES.nothing) + && classifier.isClassWithFqName(StandardNames.FqNames.nothing) internal fun IrType.isVector(): Boolean { if (this is IrSimpleType && !this.hasQuestionMark) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt index 6d8d0c578c8..83adc73290b 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.backend.konan.descriptors.kotlinNativeInternal import org.jetbrains.kotlin.backend.konan.llvm.findMainEntryPoint import org.jetbrains.kotlin.backend.konan.lower.TestProcessor import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.builtins.UnsignedType import org.jetbrains.kotlin.config.coroutinesIntrinsicsPackageFqName import org.jetbrains.kotlin.config.coroutinesPackageFqName @@ -320,7 +321,7 @@ internal class KonanSymbols( } val copyInto = arrays.map { symbol -> - val packageViewDescriptor = builtIns.builtInsModule.getPackage(KotlinBuiltIns.COLLECTIONS_PACKAGE_FQ_NAME) + val packageViewDescriptor = builtIns.builtInsModule.getPackage(StandardNames.COLLECTIONS_PACKAGE_FQ_NAME) val functionDescriptor = packageViewDescriptor.memberScope .getContributedFunctions(Name.identifier("copyInto"), NoLookupLocation.FROM_BACKEND) .single { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt index c95e3d0a1ee..e10c8de9a0e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.backend.konan.ir import org.jetbrains.kotlin.backend.common.atMostOne import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.declarations.* @@ -37,15 +38,15 @@ val IrFunction.allParameters: List explicitParameters } -fun IrClass.isUnit() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.unit.toSafe() +fun IrClass.isUnit() = this.fqNameForIrSerialization == StandardNames.FqNames.unit.toSafe() -fun IrClass.isKotlinArray() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.array.toSafe() +fun IrClass.isKotlinArray() = this.fqNameForIrSerialization == StandardNames.FqNames.array.toSafe() val IrClass.superClasses get() = this.superTypes.map { it.classifierOrFail as IrClassSymbol } fun IrClass.getSuperClassNotAny() = this.superClasses.map { it.owner }.atMostOne { !it.isInterface && !it.isAny() } -fun IrClass.isAny() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.any.toSafe() -fun IrClass.isNothing() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.nothing.toSafe() +fun IrClass.isAny() = this.fqNameForIrSerialization == StandardNames.FqNames.any.toSafe() +fun IrClass.isNothing() = this.fqNameForIrSerialization == StandardNames.FqNames.nothing.toSafe() fun IrClass.getSuperInterfaces() = this.superClasses.map { it.owner }.filter { it.isInterface } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/CustomTypeMapper.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/CustomTypeMapper.kt index 2f4ca36e379..dab24ccc86a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/CustomTypeMapper.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/CustomTypeMapper.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.backend.konan.objcexport import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.builtins.functions.FunctionClassKind import org.jetbrains.kotlin.builtins.getFunctionalClassKind @@ -32,7 +33,7 @@ internal object CustomTypeMappers { * * Don't forget to update [hiddenTypes] after adding new one. */ - private val predefined: Map = with(KotlinBuiltIns.FQ_NAMES) { + private val predefined: Map = with(StandardNames.FqNames) { val result = mutableListOf() result += Collection(list, "NSArray") @@ -73,7 +74,7 @@ internal object CustomTypeMappers { if (descriptor.isMappedFunctionClass()) { // TODO: somewhat hacky, consider using FunctionClassDescriptor.arity later. val arity = descriptor.declaredTypeParameters.size - 1 // Type parameters include return type. - assert(classId == KotlinBuiltIns.getFunctionClassId(arity)) + assert(classId == StandardNames.getFunctionClassId(arity)) return Function(arity) } @@ -141,7 +142,7 @@ internal object CustomTypeMappers { private class Function(private val parameterCount: Int) : CustomTypeMapper { override val mappedClassId: ClassId - get() = KotlinBuiltIns.getFunctionClassId(parameterCount) + get() = StandardNames.getFunctionClassId(parameterCount) override fun mapType(mappedSuperType: KotlinType, translator: ObjCExportTranslatorImpl, objCExportScope: ObjCExportScope): ObjCNonNullReferenceType { return translator.mapFunctionTypeIgnoringNullability(mappedSuperType, objCExportScope, returnsVoid = false) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt index e030c530f2e..ca8e2794404 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt @@ -8,11 +8,8 @@ package org.jetbrains.kotlin.backend.konan.objcexport import org.jetbrains.kotlin.backend.common.serialization.findSourceFile import org.jetbrains.kotlin.backend.konan.* import org.jetbrains.kotlin.backend.konan.descriptors.* -import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.* import org.jetbrains.kotlin.builtins.KotlinBuiltIns.isAny -import org.jetbrains.kotlin.builtins.getReceiverTypeFromFunctionType -import org.jetbrains.kotlin.builtins.getReturnTypeFromFunctionType -import org.jetbrains.kotlin.builtins.getValueParameterTypesFromFunctionType import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.resolve.constants.ArrayValue @@ -682,7 +679,7 @@ internal class ObjCExportTranslatorImpl( return null } - private val throwableClassId = ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.throwable) + private val throwableClassId = ClassId.topLevel(StandardNames.FqNames.throwable) private fun getEffectiveThrows(method: FunctionDescriptor): Sequence { method.overriddenDescriptors.firstOrNull()?.let { return getEffectiveThrows(it) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt index bc63efc150f..cd1be9ff851 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.backend.konan.KonanBackendContext import org.jetbrains.kotlin.backend.konan.KonanCompilationException import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName import org.jetbrains.kotlin.backend.konan.ir.buildSimpleAnnotation -import org.jetbrains.kotlin.builtins.KOTLIN_REFLECT_FQ_NAME +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.descriptors.ParameterDescriptor import org.jetbrains.kotlin.descriptors.Visibilities @@ -390,7 +390,7 @@ fun IrFunction.isRestrictedSuspendFunction(languageVersionSettings: LanguageVers fun IrFunction.isTypeOfIntrinsic(): Boolean = this.name.asString() == "typeOf" && this.valueParameters.isEmpty() && - (this.parent as? IrPackageFragment)?.fqName == KOTLIN_REFLECT_FQ_NAME + (this.parent as? IrPackageFragment)?.fqName == StandardNames.KOTLIN_REFLECT_FQ_NAME fun IrBuilderWithScope.irByte(value: Byte) = IrConstImpl.byte(startOffset, endOffset, context.irBuiltIns.byteType, value) diff --git a/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/KlibPrinter.kt b/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/KlibPrinter.kt index 4210198a448..3242173bc6d 100644 --- a/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/KlibPrinter.kt +++ b/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/KlibPrinter.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.cli.klib import org.jetbrains.kotlin.backend.konan.descriptors.getPackageFragments import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorVisitorEmptyBodies import org.jetbrains.kotlin.renderer.* @@ -143,7 +144,7 @@ class KlibPrinter(out: Appendable) { modifiers = DescriptorRendererModifier.ALL overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE annotationArgumentsRenderingPolicy = AnnotationArgumentsRenderingPolicy.UNLESS_EMPTY - excludedAnnotationClasses += setOf(KotlinBuiltIns.FQ_NAMES.suppress) + excludedAnnotationClasses += setOf(StandardNames.FqNames.suppress) classWithPrimaryConstructor = true renderConstructorKeyword = true