[K/N] Reformat

This commit is contained in:
Igor Chevdar
2023-11-24 17:35:42 +02:00
committed by Space Team
parent 00119c6a97
commit b264cf2119
@@ -36,17 +36,17 @@ import org.jetbrains.kotlin.backend.common.serialization.proto.IrField as ProtoF
@OptIn(ObsoleteDescriptorBasedAPI::class) @OptIn(ObsoleteDescriptorBasedAPI::class)
internal class KonanPartialModuleDeserializer( internal class KonanPartialModuleDeserializer(
konanIrLinker: KonanIrLinker, konanIrLinker: KonanIrLinker,
moduleDescriptor: ModuleDescriptor, moduleDescriptor: ModuleDescriptor,
override val klib: KotlinLibrary, override val klib: KotlinLibrary,
private val stubGenerator: DeclarationStubGenerator, private val stubGenerator: DeclarationStubGenerator,
private val cachedLibraries: CachedLibraries, private val cachedLibraries: CachedLibraries,
private val inlineFunctionFiles: MutableMap<IrExternalPackageFragment, IrFile>, private val inlineFunctionFiles: MutableMap<IrExternalPackageFragment, IrFile>,
strategyResolver: (String) -> DeserializationStrategy, strategyResolver: (String) -> DeserializationStrategy,
private val cacheDeserializationStrategy: CacheDeserializationStrategy, private val cacheDeserializationStrategy: CacheDeserializationStrategy,
containsErrorCode: Boolean = false containsErrorCode: Boolean = false
) : BasicIrModuleDeserializer(konanIrLinker, moduleDescriptor, klib, ) : BasicIrModuleDeserializer(konanIrLinker, moduleDescriptor, klib,
{ fileName -> { fileName ->
if (cacheDeserializationStrategy.contains(fileName)) if (cacheDeserializationStrategy.contains(fileName))
strategyResolver(fileName) strategyResolver(fileName)
else DeserializationStrategy.ON_DEMAND else DeserializationStrategy.ON_DEMAND
@@ -165,10 +165,10 @@ internal class KonanPartialModuleDeserializer(
} ?: INVALID_INDEX } ?: INVALID_INDEX
return SerializedInlineFunctionReference( return SerializedInlineFunctionReference(
SerializedFileReference(fileDeserializationState.file), SerializedFileReference(fileDeserializationState.file),
functionSignature, protoFunction.base.body, irFunction.startOffset, irFunction.endOffset, functionSignature, protoFunction.base.body, irFunction.startOffset, irFunction.endOffset,
extensionReceiverSig, dispatchReceiverSig, outerReceiverSigs.toIntArray(), extensionReceiverSig, dispatchReceiverSig, outerReceiverSigs.toIntArray(),
valueParameterSigs.toIntArray(), typeParameterSigs.toIntArray(), defaultValues.toIntArray() valueParameterSigs.toIntArray(), typeParameterSigs.toIntArray(), defaultValues.toIntArray()
) )
} }
@@ -228,55 +228,55 @@ internal class KonanPartialModuleDeserializer(
val outerThisIndex = fields.indexOfFirst { it.irField?.origin == IrDeclarationOrigin.FIELD_FOR_OUTER_THIS } val outerThisIndex = fields.indexOfFirst { it.irField?.origin == IrDeclarationOrigin.FIELD_FOR_OUTER_THIS }
val compatibleMode = CompatibilityMode(libraryAbiVersion).oldSignatures val compatibleMode = CompatibilityMode(libraryAbiVersion).oldSignatures
return SerializedClassFields( return SerializedClassFields(
SerializedFileReference(fileDeserializationState.file), SerializedFileReference(fileDeserializationState.file),
signature, signature,
typeParameterSigs.toIntArray(), typeParameterSigs.toIntArray(),
outerThisIndex, outerThisIndex,
Array(fields.size) { Array(fields.size) {
val field = fields[it] val field = fields[it]
val irField = field.irField ?: error("No IR for field ${field.name} of ${irClass.render()}") val irField = field.irField ?: error("No IR for field ${field.name} of ${irClass.render()}")
if (it == outerThisIndex) { if (it == outerThisIndex) {
require(irClass.isInner) { "Expected an inner class: ${irClass.render()}" } require(irClass.isInner) { "Expected an inner class: ${irClass.render()}" }
require(protoClasses.size > 1) { "An inner class must have at least one outer class" } require(protoClasses.size > 1) { "An inner class must have at least one outer class" }
val outerProtoClass = protoClasses[protoClasses.size - 2] val outerProtoClass = protoClasses[protoClasses.size - 2]
val nameAndType = BinaryNameAndType.decode(outerProtoClass.thisReceiver.nameType) val nameAndType = BinaryNameAndType.decode(outerProtoClass.thisReceiver.nameType)
SerializedClassFieldInfo( SerializedClassFieldInfo(
name = INVALID_INDEX, name = INVALID_INDEX,
binaryType = INVALID_INDEX, binaryType = INVALID_INDEX,
nameAndType.typeIndex, nameAndType.typeIndex,
flags = 0, flags = 0,
field.alignment field.alignment
) )
} else { } else {
val protoField = protoFieldsMap[field.name] ?: error("No proto for ${irField.render()}") val protoField = protoFieldsMap[field.name] ?: error("No proto for ${irField.render()}")
val nameAndType = BinaryNameAndType.decode(protoField.nameType) val nameAndType = BinaryNameAndType.decode(protoField.nameType)
var flags = 0 var flags = 0
if (field.isConst) if (field.isConst)
flags = flags or SerializedClassFieldInfo.FLAG_IS_CONST flags = flags or SerializedClassFieldInfo.FLAG_IS_CONST
val classifier = irField.type.classifierOrNull val classifier = irField.type.classifierOrNull
?: error("Fields of type ${irField.type.render()} are not supported") ?: error("Fields of type ${irField.type.render()} are not supported")
val primitiveBinaryType = irField.type.computePrimitiveBinaryTypeOrNull() val primitiveBinaryType = irField.type.computePrimitiveBinaryTypeOrNull()
SerializedClassFieldInfo( SerializedClassFieldInfo(
nameAndType.nameIndex, nameAndType.nameIndex,
primitiveBinaryType?.ordinal ?: INVALID_INDEX, primitiveBinaryType?.ordinal ?: INVALID_INDEX,
if (with(KonanManglerIr) { (classifier as? IrClassSymbol)?.owner?.isExported(compatibleMode) } == false) if (with(KonanManglerIr) { (classifier as? IrClassSymbol)?.owner?.isExported(compatibleMode) } == false)
INVALID_INDEX INVALID_INDEX
else nameAndType.typeIndex, else nameAndType.typeIndex,
flags, flags,
field.alignment field.alignment
) )
} }
}) })
} }
fun buildEagerInitializedFile(irFile: IrFile) = fun buildEagerInitializedFile(irFile: IrFile) =
SerializedEagerInitializedFile(SerializedFileReference(irFile)) SerializedEagerInitializedFile(SerializedFileReference(irFile))
private val descriptorByIdSignatureFinder = DescriptorByIdSignatureFinderImpl( private val descriptorByIdSignatureFinder = DescriptorByIdSignatureFinderImpl(
moduleDescriptor, KonanManglerDesc, moduleDescriptor, KonanManglerDesc,
DescriptorByIdSignatureFinderImpl.LookupMode.MODULE_ONLY DescriptorByIdSignatureFinderImpl.LookupMode.MODULE_ONLY
) )
private val deserializedSymbols = mutableMapOf<IdSignature, IrSymbol>() private val deserializedSymbols = mutableMapOf<IdSignature, IrSymbol>()
@@ -334,11 +334,11 @@ internal class KonanPartialModuleDeserializer(
if (function.parents.any { (it as? IrFunction)?.isInline == true }) { if (function.parents.any { (it as? IrFunction)?.isInline == true }) {
// Already deserialized by the top-most inline function. // Already deserialized by the top-most inline function.
return InlineFunctionOriginInfo( return InlineFunctionOriginInfo(
function, function,
packageFragment as? IrFile packageFragment as? IrFile
?: inlineFunctionFiles[packageFragment as IrExternalPackageFragment] ?: inlineFunctionFiles[packageFragment as IrExternalPackageFragment]
?: error("${function.render()} should've been deserialized along with its parent"), ?: error("${function.render()} should've been deserialized along with its parent"),
function.startOffset, function.endOffset function.startOffset, function.endOffset
) )
} }
@@ -422,10 +422,10 @@ internal class KonanPartialModuleDeserializer(
) )
return InlineFunctionOriginInfo( return InlineFunctionOriginInfo(
function, function,
fileDeserializationState.file, fileDeserializationState.file,
inlineFunctionReference.startOffset, inlineFunctionReference.startOffset,
inlineFunctionReference.endOffset inlineFunctionReference.endOffset
) )
} }
@@ -476,7 +476,7 @@ internal class KonanPartialModuleDeserializer(
require(irClass.isInner) { "Expected an inner class: ${irClass.render()}" } require(irClass.isInner) { "Expected an inner class: ${irClass.render()}" }
require(outerThisFieldInfo != null) { "For an inner class ${irClass.render()} there should be <outer this> field" } require(outerThisFieldInfo != null) { "For an inner class ${irClass.render()} there should be <outer this> field" }
outerThisFieldInfo.also { outerThisFieldInfo.also {
require(it.alignment == field.alignment) { "Mismatched align information for outer this"} require(it.alignment == field.alignment) { "Mismatched align information for outer this" }
} }
} else { } else {
val name = fileDeserializationState.fileReader.string(field.name) val name = fileDeserializationState.fileReader.string(field.name)
@@ -497,10 +497,10 @@ internal class KonanPartialModuleDeserializer(
} }
} }
ClassLayoutBuilder.FieldInfo( ClassLayoutBuilder.FieldInfo(
name, type, name, type,
isConst = (field.flags and SerializedClassFieldInfo.FLAG_IS_CONST) != 0, isConst = (field.flags and SerializedClassFieldInfo.FLAG_IS_CONST) != 0,
irFieldSymbol = IrFieldSymbolImpl(), irFieldSymbol = IrFieldSymbolImpl(),
alignment = field.alignment, alignment = field.alignment,
) )
} }
} }