From 2cc567291a009a632134b99688c2dff168ee61e3 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Wed, 29 May 2019 09:44:54 +0300 Subject: [PATCH] [kotlin compiler][update][temporary] workaround over fresh refactoring of fqNameSafe - this commit should be just reverted when fqNameSafe will return. --- .../src/org/jetbrains/kotlin/backend/konan/Boxing.kt | 2 +- .../org/jetbrains/kotlin/backend/konan/ObjCInterop.kt | 6 +++--- .../jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt | 2 +- .../backend/konan/descriptors/DescriptorUtils.kt | 4 ++-- .../jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt | 10 +++++----- .../kotlin/backend/konan/llvm/BinaryInterface.kt | 10 +++++----- .../kotlin/backend/konan/llvm/ContextUtils.kt | 4 ++-- .../backend/konan/llvm/KotlinObjCClassInfoGenerator.kt | 4 ++-- .../kotlin/backend/konan/llvm/LlvmDeclarations.kt | 6 +++--- .../kotlin/backend/konan/llvm/RTTIGenerator.kt | 8 ++++---- .../kotlin/backend/konan/llvm/StaticObjects.kt | 8 ++++---- .../jetbrains/kotlin/backend/konan/lower/Autoboxing.kt | 2 +- .../backend/konan/lower/CallableReferenceLowering.kt | 4 ++-- .../kotlin/backend/konan/lower/FunctionInlining.kt | 2 +- .../kotlin/backend/konan/lower/TestProcessor.kt | 9 ++++----- .../backend/konan/lower/matchers/IrFunctionMatcher.kt | 5 ++--- .../kotlin/backend/konan/optimizations/DataFlowIR.kt | 6 +++--- 17 files changed, 45 insertions(+), 47 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt index 16a063d6bfe..d76f785f14a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt @@ -39,7 +39,7 @@ private fun KonanSymbols.getTypeConversionImpl( actualInlinedClass == null && expectedInlinedClass == null -> null actualInlinedClass != null && expectedInlinedClass == null -> context.getBoxFunction(actualInlinedClass) actualInlinedClass == null && expectedInlinedClass != null -> context.getUnboxFunction(expectedInlinedClass) - else -> error("actual type is ${actualInlinedClass?.fqNameSafe}, expected ${expectedInlinedClass?.fqNameSafe}") + else -> error("actual type is ${actualInlinedClass?.fqNameForIrSerialization}, expected ${expectedInlinedClass?.fqNameForIrSerialization}") }?.symbol } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ObjCInterop.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ObjCInterop.kt index bb1f7eeb421..1f4ea51a300 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ObjCInterop.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ObjCInterop.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.types.classifierOrFail import org.jetbrains.kotlin.ir.util.constructedClass -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.hasAnnotation import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -47,8 +47,8 @@ fun KotlinType.isObjCObjectType(): Boolean = private fun IrClass.getAllSuperClassifiers(): List = listOf(this) + this.superTypes.flatMap { (it.classifierOrFail.owner as IrClass).getAllSuperClassifiers() } -internal fun IrClass.isObjCClass() = this.getAllSuperClassifiers().any { it.fqNameSafe == objCObjectFqName } && - this.parent.fqNameSafe != interopPackageName +internal fun IrClass.isObjCClass() = this.getAllSuperClassifiers().any { it.fqNameForIrSerialization == objCObjectFqName } && + this.parent.fqNameForIrSerialization != interopPackageName @Deprecated("Use IR version rather than descriptor version") fun ClassDescriptor.isExternalObjCClass(): Boolean = this.isObjCClass() && 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 659c8184e40..7bc79416aac 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 @@ -586,7 +586,7 @@ private fun IrType.isCEnumType(): Boolean { if (!enumClass.isEnumClass) return false return enumClass.superTypes - .any { (it.classifierOrNull?.owner as? IrClass)?.fqNameSafe == FqName("kotlinx.cinterop.CEnum") } + .any { (it.classifierOrNull?.owner as? IrClass)?.fqNameForIrSerialization == FqName("kotlinx.cinterop.CEnum") } } // TODO: get rid of consulting descriptors for annotations. diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt index a556329b129..7e96c5dd949 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/descriptors/DescriptorUtils.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.isUnit -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.isSuspend import org.jetbrains.kotlin.ir.util.overrides import org.jetbrains.kotlin.types.SimpleType @@ -97,7 +97,7 @@ internal val arrayTypes = setOf( internal val IrClass.isArray: Boolean - get() = this.fqNameSafe.asString() in arrayTypes + get() = this.fqNameForIrSerialization.asString() in arrayTypes fun IrClass.isAbstract() = this.modality == Modality.SEALED || this.modality == Modality.ABSTRACT 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 e8f3de1da17..dbd08071a1a 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 @@ -39,7 +39,7 @@ val IrDeclaration.name: Name private val SPECIAL_INIT_NAME = Name.special("") -val IrField.fqNameSafe: FqName get() = this.parent.fqNameSafe.child(this.name) +val IrField.fqNameForIrSerialization: FqName get() = this.parent.fqNameForIrSerialization.child(this.name) /** * @return naturally-ordered list of all parameters available inside the function body. @@ -53,15 +53,15 @@ val IrFunction.allParameters: List explicitParameters } -fun IrClass.isUnit() = this.fqNameSafe == KotlinBuiltIns.FQ_NAMES.unit.toSafe() +fun IrClass.isUnit() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.unit.toSafe() -fun IrClass.isKotlinArray() = this.fqNameSafe == KotlinBuiltIns.FQ_NAMES.array.toSafe() +fun IrClass.isKotlinArray() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.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.fqNameSafe == KotlinBuiltIns.FQ_NAMES.any.toSafe() -fun IrClass.isNothing() = this.fqNameSafe == KotlinBuiltIns.FQ_NAMES.nothing.toSafe() +fun IrClass.isAny() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.any.toSafe() +fun IrClass.isNothing() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.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/llvm/BinaryInterface.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt index 5205436c41e..548e3c91a13 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/BinaryInterface.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.isSuspend import org.jetbrains.kotlin.ir.util.isVararg import org.jetbrains.kotlin.konan.library.uniqueName @@ -131,7 +131,7 @@ object KonanMangler : KotlinManglerImpl() { val parent = this.parent - val containingDeclarationPart = parent.fqNameSafe.let { + val containingDeclarationPart = parent.fqNameForIrSerialization.let { if (it.isRoot) "" else "$it." } return "kfun:$containingDeclarationPart$functionName" @@ -141,7 +141,7 @@ object KonanMangler : KotlinManglerImpl() { internal val IrClass.writableTypeInfoSymbolName: String get() { assert (this.isExported()) - return "ktypew:" + this.fqNameSafe.toString() + return "ktypew:" + this.fqNameForIrSerialization.toString() } internal val theUnitInstanceName = "kobj:kotlin.Unit" @@ -152,7 +152,7 @@ internal val IrClass.objectInstanceFieldSymbolName: String assert (this.kind.isSingleton) assert (!this.isUnit()) - return "kobjref:$fqNameSafe" + return "kobjref:$fqNameForIrSerialization" } internal val IrClass.objectInstanceShadowFieldSymbolName: String @@ -162,7 +162,7 @@ internal val IrClass.objectInstanceShadowFieldSymbolName: String assert (!this.isUnit()) assert (this.objectIsShared) - return "kshadowobjref:$fqNameSafe" + return "kshadowobjref:$fqNameForIrSerialization" } val IrFunction.functionName get() = with(KonanMangler) { functionName } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/ContextUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/ContextUtils.kt index ba7e1cb9862..af4d43292b6 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/ContextUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/ContextUtils.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.descriptors.konan.CurrentKonanModuleOrigin import org.jetbrains.kotlin.descriptors.konan.DeserializedKonanModuleOrigin import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.util.file -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.isEffectivelyExternal import org.jetbrains.kotlin.konan.library.KonanLibrary import org.jetbrains.kotlin.konan.library.resolver.TopologicalLibraryOrder @@ -157,7 +157,7 @@ internal interface ContextUtils : RuntimeAware { * It may be declared as external function prototype. */ val IrFunction.llvmFunction: LLVMValueRef - get() = llvmFunctionOrNull ?: error("$name in $file/${parent.fqNameSafe}") + get() = llvmFunctionOrNull ?: error("$name in $file/${parent.fqNameForIrSerialization}") val IrFunction.llvmFunctionOrNull: LLVMValueRef? get() { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/KotlinObjCClassInfoGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/KotlinObjCClassInfoGenerator.kt index 933b009794e..4deb8a3450f 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/KotlinObjCClassInfoGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/KotlinObjCClassInfoGenerator.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.backend.konan.ir.* import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.util.constructors -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.hasAnnotation import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe @@ -97,7 +97,7 @@ internal class KotlinObjCClassInfoGenerator(override val context: Context) : Con ?: if (irClass.annotations.hasAnnotation(exportObjCClassAnnotation)) irClass.name.asString() else if (irClass.isExported()) { - irClass.fqNameSafe.asString() + irClass.fqNameForIrSerialization.asString() } else { null // Generate as anonymous. } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/LlvmDeclarations.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/LlvmDeclarations.kt index 69cfb1fcdda..1d9b21ee09d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/LlvmDeclarations.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/LlvmDeclarations.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.types.isNothing import org.jetbrains.kotlin.ir.util.defaultType -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.hasAnnotation import org.jetbrains.kotlin.ir.util.file import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid @@ -44,7 +44,7 @@ internal class LlvmDeclarations( private val fields: Map, private val staticFields: Map, private val unique: Map) { - fun forFunction(function: IrFunction) = forFunctionOrNull(function) ?: with(function){error("$name in $file/${parent.fqNameSafe}")} + fun forFunction(function: IrFunction) = forFunctionOrNull(function) ?: with(function){error("$name in $file/${parent.fqNameForIrSerialization}")} fun forFunctionOrNull(function: IrFunction) = functions[function] fun forClass(irClass: IrClass) = classes[irClass] ?: @@ -131,7 +131,7 @@ private fun Context.getDeclaredFields(irClass: IrClass): List { return fields return fields.sortedBy { - it.fqNameSafe.localHash.value + it.fqNameForIrSerialization.localHash.value } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/RTTIGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/RTTIGenerator.kt index fda6d7761c4..4f19eb88451 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/RTTIGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/RTTIGenerator.kt @@ -173,7 +173,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils { fun generate(irClass: IrClass) { - val className = irClass.fqNameSafe + val className = irClass.fqNameForIrSerialization val llvmDeclarations = context.llvmDeclarations.forClass(irClass) @@ -283,7 +283,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils { if (context.shouldOptimize()) return NullPointer(runtime.extendedTypeInfoType) - val className = irClass.fqNameSafe.toString() + val className = irClass.fqNameForIrSerialization.toString() val llvmDeclarations = context.llvmDeclarations.forClass(irClass) val bodyType = llvmDeclarations.bodyType val elementType = arrayClasses[className] @@ -333,7 +333,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils { } return staticData.placeGlobalConstArray( - name = "kassociatedobjects:${irClass.fqNameSafe}", + name = "kassociatedobjects:${irClass.fqNameForIrSerialization}", elemType = runtime.associatedObjectTableRecordType, elements = associatedObjectTableRecords + Struct(runtime.associatedObjectTableRecordType, null, null) ) @@ -417,7 +417,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils { irClass.isLocal -> ReflectionInfo(packageName = null, relativeName = irClass.name.asString()) else -> ReflectionInfo( - packageName = irClass.findPackage().fqName.asString(), + packageName = irClass.findPackage().fqNameForIrSerialization.asString(), relativeName = generateSequence(irClass) { it.parent as? IrClass } .toList().reversed() .joinToString(".") { it.name.asString() } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/StaticObjects.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/StaticObjects.kt index de4188ef6cb..5eb62ce5b30 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/StaticObjects.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/StaticObjects.kt @@ -7,10 +7,10 @@ package org.jetbrains.kotlin.backend.konan.llvm import kotlinx.cinterop.cValuesOf import llvm.* -import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe +import org.jetbrains.kotlin.backend.konan.ir.fqNameForIrSerialization import org.jetbrains.kotlin.backend.konan.ir.llvmSymbolOrigin import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization private fun ConstPointer.add(index: Int): ConstPointer { return constPointer(LLVMConstGEP(llvm, cValuesOf(Int32(index).llvm), 1)!!) @@ -92,7 +92,7 @@ internal fun StaticData.createInitializer(type: IrClass, vararg fields: ConstVal internal fun StaticData.createConstArrayList(array: ConstPointer, length: Int): ConstPointer { val arrayListClass = context.ir.symbols.arrayList.owner - val arrayListFqName = arrayListClass.fqNameSafe + val arrayListFqName = arrayListClass.fqNameForIrSerialization val arrayListFields = mapOf( "$arrayListFqName.array" to array, "$arrayListFqName.offset" to Int32(0), @@ -103,7 +103,7 @@ internal fun StaticData.createConstArrayList(array: ConstPointer, length: Int): // to match the sorting order of the real ArrayList(). val sorted = linkedMapOf() getFields(arrayListClass).forEach { - val fqName = it.fqNameSafe.asString() + val fqName = it.fqNameForIrSerialization.asString() sorted.put(fqName, arrayListFields[fqName]!!) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt index 8f0e2d40ede..e36f3044fd0 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt @@ -218,7 +218,7 @@ private class InlineClassTransformer(private val context: Context) : IrBuildingT if (declaration.isInlined()) { if (declaration.isUsedAsBoxClass()) { - if (KonanPrimitiveType.byFqName[declaration.fqNameSafe.toUnsafe()] != null) { + if (KonanPrimitiveType.byFqName[declaration.fqNameForIrSerialization.toUnsafe()] != null) { buildBoxField(declaration) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt index 41234fd9f76..6dca81599de 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.backend.konan.Context import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName import org.jetbrains.kotlin.backend.common.pop import org.jetbrains.kotlin.backend.common.push -import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe +import org.jetbrains.kotlin.backend.konan.ir.fqNameForIrSerialization import org.jetbrains.kotlin.backend.konan.ir.isFunctionOrKFunctionType import org.jetbrains.kotlin.backend.konan.llvm.functionName import org.jetbrains.kotlin.descriptors.* @@ -278,7 +278,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass } private val IrFunction.fullName: String - get() = parent.fqNameSafe.child(Name.identifier(functionName)).asString() + get() = parent.fqNameForIrSerialization.child(Name.identifier(functionName)).asString() private fun buildInvokeMethod(superFunction: IrSimpleFunction) = WrappedSimpleFunctionDescriptor().let { IrFunctionImpl( diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index 600b2bed90a..0979f584c2a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -150,7 +150,7 @@ internal class FunctionInlining(val context: Context) : IrElementTransformerVoid val oldThis = constructedClass.thisReceiver!! val newThis = currentScope.scope.createTemporaryVariableWithWrappedDescriptor( irExpression = constructorCall, - nameHint = constructedClass.fqNameSafe.toString() + ".this" + nameHint = constructedClass.fqNameForIrSerialization.toString() + ".this" ) statements[0] = newThis substituteMap[oldThis] = irGet(newThis) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index 03f0aaf6790..5e75e1a6d59 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.backend.common.reportWarning import org.jetbrains.kotlin.backend.konan.Context import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName -import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe import org.jetbrains.kotlin.backend.konan.ir.typeWithStarProjections import org.jetbrains.kotlin.backend.konan.ir.typeWithoutArguments import org.jetbrains.kotlin.backend.konan.reportCompilationError @@ -236,7 +235,7 @@ internal class TestProcessor (val context: Context) { warn("Annotation $annotation is not allowed for methods of a companion object") constructors.none { it.valueParameters.size == 0 } -> - warn("Test class has no default constructor: $fqNameSafe") + warn("Test class has no default constructor: $fqNameForIrSerialization") else -> testClasses.getTestClass(irClass).registerFunction(function, kind, ignored) @@ -267,12 +266,12 @@ internal class TestProcessor (val context: Context) { // Test runner requires test functions to have the following signature: () -> Unit. if (!returnType.isUnit()) { context.reportCompilationError( - "Test function must return Unit: $fqNameSafe", irFile, this + "Test function must return Unit: $fqNameForIrSerialization", irFile, this ) } if (valueParameters.isNotEmpty()) { context.reportCompilationError( - "Test function must have no arguments: $fqNameSafe", irFile, this + "Test function must have no arguments: $fqNameForIrSerialization", irFile, this ) } } @@ -498,7 +497,7 @@ internal class TestProcessor (val context: Context) { } val constructor = buildClassSuiteConstructor( - testClass.fqNameSafe.toString(), testClassType, testCompanionType, + testClass.fqNameForIrSerialization.toString(), testClassType, testCompanionType, symbol, this, functions, testClass.ignored ) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/matchers/IrFunctionMatcher.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/matchers/IrFunctionMatcher.kt index 96e03ede4e8..764feeb3332 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/matchers/IrFunctionMatcher.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/matchers/IrFunctionMatcher.kt @@ -1,11 +1,10 @@ package org.jetbrains.kotlin.backend.konan.lower.matchers -import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrValueParameter import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.classifierOrNull -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.name.FqName internal interface IrFunctionMatcher : (IrFunction) -> Boolean @@ -53,7 +52,7 @@ internal class FqNameMatcher( ) : IrFunctionMatcher { override fun invoke(function: IrFunction): Boolean { - return restriction(function.fqNameSafe) + return restriction(function.fqNameForIrSerialization) } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowIR.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowIR.kt index 3ad46827374..33ceb602151 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowIR.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowIR.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.getClass import org.jetbrains.kotlin.ir.types.isNothing import org.jetbrains.kotlin.ir.types.isUnit -import org.jetbrains.kotlin.ir.util.fqNameSafe +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.isInterface import org.jetbrains.kotlin.ir.util.isSuspend import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid @@ -508,7 +508,7 @@ internal object DataFlowIR { val isFinal = irClass.isFinal() val isAbstract = irClass.isAbstract() - val name = irClass.fqNameSafe.asString() + val name = irClass.fqNameForIrSerialization.asString() classMap[irClass]?.let { return it } @@ -569,7 +569,7 @@ internal object DataFlowIR { // TODO: use from LlvmDeclarations. private fun getFqName(declaration: IrDeclaration): FqName = - declaration.parent.fqNameSafe.child(declaration.name) + declaration.parent.fqNameForIrSerialization.child(declaration.name) private val IrFunction.internalName get() = getFqName(this).asString() + "#internal"