[kotlin compiler][update][temporary] workaround over fresh refactoring of fqNameSafe
- this commit should be just reverted when fqNameSafe will return.
This commit is contained in:
+1
-1
@@ -39,7 +39,7 @@ private fun KonanSymbols.getTypeConversionImpl(
|
|||||||
actualInlinedClass == null && expectedInlinedClass == null -> null
|
actualInlinedClass == null && expectedInlinedClass == null -> null
|
||||||
actualInlinedClass != null && expectedInlinedClass == null -> context.getBoxFunction(actualInlinedClass)
|
actualInlinedClass != null && expectedInlinedClass == null -> context.getBoxFunction(actualInlinedClass)
|
||||||
actualInlinedClass == null && expectedInlinedClass != null -> context.getUnboxFunction(expectedInlinedClass)
|
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
|
}?.symbol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
||||||
import org.jetbrains.kotlin.ir.util.constructedClass
|
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.ir.util.hasAnnotation
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -47,8 +47,8 @@ fun KotlinType.isObjCObjectType(): Boolean =
|
|||||||
private fun IrClass.getAllSuperClassifiers(): List<IrClass> =
|
private fun IrClass.getAllSuperClassifiers(): List<IrClass> =
|
||||||
listOf(this) + this.superTypes.flatMap { (it.classifierOrFail.owner as IrClass).getAllSuperClassifiers() }
|
listOf(this) + this.superTypes.flatMap { (it.classifierOrFail.owner as IrClass).getAllSuperClassifiers() }
|
||||||
|
|
||||||
internal fun IrClass.isObjCClass() = this.getAllSuperClassifiers().any { it.fqNameSafe == objCObjectFqName } &&
|
internal fun IrClass.isObjCClass() = this.getAllSuperClassifiers().any { it.fqNameForIrSerialization == objCObjectFqName } &&
|
||||||
this.parent.fqNameSafe != interopPackageName
|
this.parent.fqNameForIrSerialization != interopPackageName
|
||||||
|
|
||||||
@Deprecated("Use IR version rather than descriptor version")
|
@Deprecated("Use IR version rather than descriptor version")
|
||||||
fun ClassDescriptor.isExternalObjCClass(): Boolean = this.isObjCClass() &&
|
fun ClassDescriptor.isExternalObjCClass(): Boolean = this.isObjCClass() &&
|
||||||
|
|||||||
+1
-1
@@ -586,7 +586,7 @@ private fun IrType.isCEnumType(): Boolean {
|
|||||||
if (!enumClass.isEnumClass) return false
|
if (!enumClass.isEnumClass) return false
|
||||||
|
|
||||||
return enumClass.superTypes
|
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.
|
// TODO: get rid of consulting descriptors for annotations.
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
|||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.isUnit
|
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.isSuspend
|
||||||
import org.jetbrains.kotlin.ir.util.overrides
|
import org.jetbrains.kotlin.ir.util.overrides
|
||||||
import org.jetbrains.kotlin.types.SimpleType
|
import org.jetbrains.kotlin.types.SimpleType
|
||||||
@@ -97,7 +97,7 @@ internal val arrayTypes = setOf(
|
|||||||
|
|
||||||
|
|
||||||
internal val IrClass.isArray: Boolean
|
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
|
fun IrClass.isAbstract() = this.modality == Modality.SEALED || this.modality == Modality.ABSTRACT
|
||||||
|
|||||||
+5
-5
@@ -39,7 +39,7 @@ val IrDeclaration.name: Name
|
|||||||
|
|
||||||
private val SPECIAL_INIT_NAME = Name.special("<init>")
|
private val SPECIAL_INIT_NAME = Name.special("<init>")
|
||||||
|
|
||||||
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.
|
* @return naturally-ordered list of all parameters available inside the function body.
|
||||||
@@ -53,15 +53,15 @@ val IrFunction.allParameters: List<IrValueParameter>
|
|||||||
explicitParameters
|
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 }
|
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.getSuperClassNotAny() = this.superClasses.map { it.owner }.atMostOne { !it.isInterface && !it.isAny() }
|
||||||
|
|
||||||
fun IrClass.isAny() = this.fqNameSafe == KotlinBuiltIns.FQ_NAMES.any.toSafe()
|
fun IrClass.isAny() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.any.toSafe()
|
||||||
fun IrClass.isNothing() = this.fqNameSafe == KotlinBuiltIns.FQ_NAMES.nothing.toSafe()
|
fun IrClass.isNothing() = this.fqNameForIrSerialization == KotlinBuiltIns.FQ_NAMES.nothing.toSafe()
|
||||||
|
|
||||||
fun IrClass.getSuperInterfaces() = this.superClasses.map { it.owner }.filter { it.isInterface }
|
fun IrClass.getSuperInterfaces() = this.superClasses.map { it.owner }.filter { it.isInterface }
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.Visibility
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.*
|
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.isSuspend
|
||||||
import org.jetbrains.kotlin.ir.util.isVararg
|
import org.jetbrains.kotlin.ir.util.isVararg
|
||||||
import org.jetbrains.kotlin.konan.library.uniqueName
|
import org.jetbrains.kotlin.konan.library.uniqueName
|
||||||
@@ -131,7 +131,7 @@ object KonanMangler : KotlinManglerImpl() {
|
|||||||
|
|
||||||
val parent = this.parent
|
val parent = this.parent
|
||||||
|
|
||||||
val containingDeclarationPart = parent.fqNameSafe.let {
|
val containingDeclarationPart = parent.fqNameForIrSerialization.let {
|
||||||
if (it.isRoot) "" else "$it."
|
if (it.isRoot) "" else "$it."
|
||||||
}
|
}
|
||||||
return "kfun:$containingDeclarationPart$functionName"
|
return "kfun:$containingDeclarationPart$functionName"
|
||||||
@@ -141,7 +141,7 @@ object KonanMangler : KotlinManglerImpl() {
|
|||||||
internal val IrClass.writableTypeInfoSymbolName: String
|
internal val IrClass.writableTypeInfoSymbolName: String
|
||||||
get() {
|
get() {
|
||||||
assert (this.isExported())
|
assert (this.isExported())
|
||||||
return "ktypew:" + this.fqNameSafe.toString()
|
return "ktypew:" + this.fqNameForIrSerialization.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val theUnitInstanceName = "kobj:kotlin.Unit"
|
internal val theUnitInstanceName = "kobj:kotlin.Unit"
|
||||||
@@ -152,7 +152,7 @@ internal val IrClass.objectInstanceFieldSymbolName: String
|
|||||||
assert (this.kind.isSingleton)
|
assert (this.kind.isSingleton)
|
||||||
assert (!this.isUnit())
|
assert (!this.isUnit())
|
||||||
|
|
||||||
return "kobjref:$fqNameSafe"
|
return "kobjref:$fqNameForIrSerialization"
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val IrClass.objectInstanceShadowFieldSymbolName: String
|
internal val IrClass.objectInstanceShadowFieldSymbolName: String
|
||||||
@@ -162,7 +162,7 @@ internal val IrClass.objectInstanceShadowFieldSymbolName: String
|
|||||||
assert (!this.isUnit())
|
assert (!this.isUnit())
|
||||||
assert (this.objectIsShared)
|
assert (this.objectIsShared)
|
||||||
|
|
||||||
return "kshadowobjref:$fqNameSafe"
|
return "kshadowobjref:$fqNameForIrSerialization"
|
||||||
}
|
}
|
||||||
|
|
||||||
val IrFunction.functionName get() = with(KonanMangler) { functionName }
|
val IrFunction.functionName get() = with(KonanMangler) { functionName }
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.descriptors.konan.CurrentKonanModuleOrigin
|
|||||||
import org.jetbrains.kotlin.descriptors.konan.DeserializedKonanModuleOrigin
|
import org.jetbrains.kotlin.descriptors.konan.DeserializedKonanModuleOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.util.file
|
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.ir.util.isEffectivelyExternal
|
||||||
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
||||||
import org.jetbrains.kotlin.konan.library.resolver.TopologicalLibraryOrder
|
import org.jetbrains.kotlin.konan.library.resolver.TopologicalLibraryOrder
|
||||||
@@ -157,7 +157,7 @@ internal interface ContextUtils : RuntimeAware {
|
|||||||
* It may be declared as external function prototype.
|
* It may be declared as external function prototype.
|
||||||
*/
|
*/
|
||||||
val IrFunction.llvmFunction: LLVMValueRef
|
val IrFunction.llvmFunction: LLVMValueRef
|
||||||
get() = llvmFunctionOrNull ?: error("$name in $file/${parent.fqNameSafe}")
|
get() = llvmFunctionOrNull ?: error("$name in $file/${parent.fqNameForIrSerialization}")
|
||||||
|
|
||||||
val IrFunction.llvmFunctionOrNull: LLVMValueRef?
|
val IrFunction.llvmFunctionOrNull: LLVMValueRef?
|
||||||
get() {
|
get() {
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.backend.konan.ir.*
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
import org.jetbrains.kotlin.ir.util.constructors
|
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.ir.util.hasAnnotation
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ internal class KotlinObjCClassInfoGenerator(override val context: Context) : Con
|
|||||||
?: if (irClass.annotations.hasAnnotation(exportObjCClassAnnotation))
|
?: if (irClass.annotations.hasAnnotation(exportObjCClassAnnotation))
|
||||||
irClass.name.asString()
|
irClass.name.asString()
|
||||||
else if (irClass.isExported()) {
|
else if (irClass.isExported()) {
|
||||||
irClass.fqNameSafe.asString()
|
irClass.fqNameForIrSerialization.asString()
|
||||||
} else {
|
} else {
|
||||||
null // Generate as anonymous.
|
null // Generate as anonymous.
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.ir.IrElement
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.types.isNothing
|
import org.jetbrains.kotlin.ir.types.isNothing
|
||||||
import org.jetbrains.kotlin.ir.util.defaultType
|
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.hasAnnotation
|
||||||
import org.jetbrains.kotlin.ir.util.file
|
import org.jetbrains.kotlin.ir.util.file
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||||
@@ -44,7 +44,7 @@ internal class LlvmDeclarations(
|
|||||||
private val fields: Map<IrField, FieldLlvmDeclarations>,
|
private val fields: Map<IrField, FieldLlvmDeclarations>,
|
||||||
private val staticFields: Map<IrField, StaticFieldLlvmDeclarations>,
|
private val staticFields: Map<IrField, StaticFieldLlvmDeclarations>,
|
||||||
private val unique: Map<UniqueKind, UniqueLlvmDeclarations>) {
|
private val unique: Map<UniqueKind, UniqueLlvmDeclarations>) {
|
||||||
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 forFunctionOrNull(function: IrFunction) = functions[function]
|
||||||
|
|
||||||
fun forClass(irClass: IrClass) = classes[irClass] ?:
|
fun forClass(irClass: IrClass) = classes[irClass] ?:
|
||||||
@@ -131,7 +131,7 @@ private fun Context.getDeclaredFields(irClass: IrClass): List<IrField> {
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
return fields.sortedBy {
|
return fields.sortedBy {
|
||||||
it.fqNameSafe.localHash.value
|
it.fqNameForIrSerialization.localHash.value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -173,7 +173,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
|
|||||||
|
|
||||||
fun generate(irClass: IrClass) {
|
fun generate(irClass: IrClass) {
|
||||||
|
|
||||||
val className = irClass.fqNameSafe
|
val className = irClass.fqNameForIrSerialization
|
||||||
|
|
||||||
val llvmDeclarations = context.llvmDeclarations.forClass(irClass)
|
val llvmDeclarations = context.llvmDeclarations.forClass(irClass)
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
|
|||||||
if (context.shouldOptimize())
|
if (context.shouldOptimize())
|
||||||
return NullPointer(runtime.extendedTypeInfoType)
|
return NullPointer(runtime.extendedTypeInfoType)
|
||||||
|
|
||||||
val className = irClass.fqNameSafe.toString()
|
val className = irClass.fqNameForIrSerialization.toString()
|
||||||
val llvmDeclarations = context.llvmDeclarations.forClass(irClass)
|
val llvmDeclarations = context.llvmDeclarations.forClass(irClass)
|
||||||
val bodyType = llvmDeclarations.bodyType
|
val bodyType = llvmDeclarations.bodyType
|
||||||
val elementType = arrayClasses[className]
|
val elementType = arrayClasses[className]
|
||||||
@@ -333,7 +333,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return staticData.placeGlobalConstArray(
|
return staticData.placeGlobalConstArray(
|
||||||
name = "kassociatedobjects:${irClass.fqNameSafe}",
|
name = "kassociatedobjects:${irClass.fqNameForIrSerialization}",
|
||||||
elemType = runtime.associatedObjectTableRecordType,
|
elemType = runtime.associatedObjectTableRecordType,
|
||||||
elements = associatedObjectTableRecords + Struct(runtime.associatedObjectTableRecordType, null, null)
|
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())
|
irClass.isLocal -> ReflectionInfo(packageName = null, relativeName = irClass.name.asString())
|
||||||
|
|
||||||
else -> ReflectionInfo(
|
else -> ReflectionInfo(
|
||||||
packageName = irClass.findPackage().fqName.asString(),
|
packageName = irClass.findPackage().fqNameForIrSerialization.asString(),
|
||||||
relativeName = generateSequence(irClass) { it.parent as? IrClass }
|
relativeName = generateSequence(irClass) { it.parent as? IrClass }
|
||||||
.toList().reversed()
|
.toList().reversed()
|
||||||
.joinToString(".") { it.name.asString() }
|
.joinToString(".") { it.name.asString() }
|
||||||
|
|||||||
+4
-4
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.backend.konan.llvm
|
|||||||
|
|
||||||
import kotlinx.cinterop.cValuesOf
|
import kotlinx.cinterop.cValuesOf
|
||||||
import llvm.*
|
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.backend.konan.ir.llvmSymbolOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
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 {
|
private fun ConstPointer.add(index: Int): ConstPointer {
|
||||||
return constPointer(LLVMConstGEP(llvm, cValuesOf(Int32(index).llvm), 1)!!)
|
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 {
|
internal fun StaticData.createConstArrayList(array: ConstPointer, length: Int): ConstPointer {
|
||||||
val arrayListClass = context.ir.symbols.arrayList.owner
|
val arrayListClass = context.ir.symbols.arrayList.owner
|
||||||
|
|
||||||
val arrayListFqName = arrayListClass.fqNameSafe
|
val arrayListFqName = arrayListClass.fqNameForIrSerialization
|
||||||
val arrayListFields = mapOf(
|
val arrayListFields = mapOf(
|
||||||
"$arrayListFqName.array" to array,
|
"$arrayListFqName.array" to array,
|
||||||
"$arrayListFqName.offset" to Int32(0),
|
"$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().
|
// to match the sorting order of the real ArrayList().
|
||||||
val sorted = linkedMapOf<String, ConstValue>()
|
val sorted = linkedMapOf<String, ConstValue>()
|
||||||
getFields(arrayListClass).forEach {
|
getFields(arrayListClass).forEach {
|
||||||
val fqName = it.fqNameSafe.asString()
|
val fqName = it.fqNameForIrSerialization.asString()
|
||||||
sorted.put(fqName, arrayListFields[fqName]!!)
|
sorted.put(fqName, arrayListFields[fqName]!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -218,7 +218,7 @@ private class InlineClassTransformer(private val context: Context) : IrBuildingT
|
|||||||
|
|
||||||
if (declaration.isInlined()) {
|
if (declaration.isInlined()) {
|
||||||
if (declaration.isUsedAsBoxClass()) {
|
if (declaration.isUsedAsBoxClass()) {
|
||||||
if (KonanPrimitiveType.byFqName[declaration.fqNameSafe.toUnsafe()] != null) {
|
if (KonanPrimitiveType.byFqName[declaration.fqNameForIrSerialization.toUnsafe()] != null) {
|
||||||
buildBoxField(declaration)
|
buildBoxField(declaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.backend.konan.Context
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.common.pop
|
import org.jetbrains.kotlin.backend.common.pop
|
||||||
import org.jetbrains.kotlin.backend.common.push
|
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.ir.isFunctionOrKFunctionType
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
@@ -278,7 +278,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val IrFunction.fullName: String
|
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 {
|
private fun buildInvokeMethod(superFunction: IrSimpleFunction) = WrappedSimpleFunctionDescriptor().let {
|
||||||
IrFunctionImpl(
|
IrFunctionImpl(
|
||||||
|
|||||||
+1
-1
@@ -150,7 +150,7 @@ internal class FunctionInlining(val context: Context) : IrElementTransformerVoid
|
|||||||
val oldThis = constructedClass.thisReceiver!!
|
val oldThis = constructedClass.thisReceiver!!
|
||||||
val newThis = currentScope.scope.createTemporaryVariableWithWrappedDescriptor(
|
val newThis = currentScope.scope.createTemporaryVariableWithWrappedDescriptor(
|
||||||
irExpression = constructorCall,
|
irExpression = constructorCall,
|
||||||
nameHint = constructedClass.fqNameSafe.toString() + ".this"
|
nameHint = constructedClass.fqNameForIrSerialization.toString() + ".this"
|
||||||
)
|
)
|
||||||
statements[0] = newThis
|
statements[0] = newThis
|
||||||
substituteMap[oldThis] = irGet(newThis)
|
substituteMap[oldThis] = irGet(newThis)
|
||||||
|
|||||||
+4
-5
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.backend.common.reportWarning
|
|||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
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.typeWithStarProjections
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.typeWithoutArguments
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithoutArguments
|
||||||
import org.jetbrains.kotlin.backend.konan.reportCompilationError
|
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")
|
warn("Annotation $annotation is not allowed for methods of a companion object")
|
||||||
|
|
||||||
constructors.none { it.valueParameters.size == 0 } ->
|
constructors.none { it.valueParameters.size == 0 } ->
|
||||||
warn("Test class has no default constructor: $fqNameSafe")
|
warn("Test class has no default constructor: $fqNameForIrSerialization")
|
||||||
|
|
||||||
else ->
|
else ->
|
||||||
testClasses.getTestClass(irClass).registerFunction(function, kind, ignored)
|
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.
|
// Test runner requires test functions to have the following signature: () -> Unit.
|
||||||
if (!returnType.isUnit()) {
|
if (!returnType.isUnit()) {
|
||||||
context.reportCompilationError(
|
context.reportCompilationError(
|
||||||
"Test function must return Unit: $fqNameSafe", irFile, this
|
"Test function must return Unit: $fqNameForIrSerialization", irFile, this
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (valueParameters.isNotEmpty()) {
|
if (valueParameters.isNotEmpty()) {
|
||||||
context.reportCompilationError(
|
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(
|
val constructor = buildClassSuiteConstructor(
|
||||||
testClass.fqNameSafe.toString(), testClassType, testCompanionType,
|
testClass.fqNameForIrSerialization.toString(), testClassType, testCompanionType,
|
||||||
symbol, this, functions, testClass.ignored
|
symbol, this, functions, testClass.ignored
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -1,11 +1,10 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.lower.matchers
|
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.IrFunction
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.classifierOrNull
|
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
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
internal interface IrFunctionMatcher : (IrFunction) -> Boolean
|
internal interface IrFunctionMatcher : (IrFunction) -> Boolean
|
||||||
@@ -53,7 +52,7 @@ internal class FqNameMatcher(
|
|||||||
) : IrFunctionMatcher {
|
) : IrFunctionMatcher {
|
||||||
|
|
||||||
override fun invoke(function: IrFunction): Boolean {
|
override fun invoke(function: IrFunction): Boolean {
|
||||||
return restriction(function.fqNameSafe)
|
return restriction(function.fqNameForIrSerialization)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.types.getClass
|
import org.jetbrains.kotlin.ir.types.getClass
|
||||||
import org.jetbrains.kotlin.ir.types.isNothing
|
import org.jetbrains.kotlin.ir.types.isNothing
|
||||||
import org.jetbrains.kotlin.ir.types.isUnit
|
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.isInterface
|
||||||
import org.jetbrains.kotlin.ir.util.isSuspend
|
import org.jetbrains.kotlin.ir.util.isSuspend
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||||
@@ -508,7 +508,7 @@ internal object DataFlowIR {
|
|||||||
|
|
||||||
val isFinal = irClass.isFinal()
|
val isFinal = irClass.isFinal()
|
||||||
val isAbstract = irClass.isAbstract()
|
val isAbstract = irClass.isAbstract()
|
||||||
val name = irClass.fqNameSafe.asString()
|
val name = irClass.fqNameForIrSerialization.asString()
|
||||||
|
|
||||||
classMap[irClass]?.let { return it }
|
classMap[irClass]?.let { return it }
|
||||||
|
|
||||||
@@ -569,7 +569,7 @@ internal object DataFlowIR {
|
|||||||
|
|
||||||
// TODO: use from LlvmDeclarations.
|
// TODO: use from LlvmDeclarations.
|
||||||
private fun getFqName(declaration: IrDeclaration): FqName =
|
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"
|
private val IrFunction.internalName get() = getFqName(this).asString() + "#internal"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user