From 2f9d6f6c4438e8c468079dde88de139d3c302c0f Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Thu, 13 Oct 2022 17:56:21 +0200 Subject: [PATCH] [IR] Partial linkage: Rename UnlinkedDeclarationsSupport to PartialLinkageSupport --- .../common/serialization/KotlinIrLinker.kt | 18 +++++++++--------- .../serialization/linkerissues/checks.kt | 2 +- ...ionsSupport.kt => PartialLinkageSupport.kt} | 4 ++-- ...ortImpl.kt => PartialLinkageSupportImpl.kt} | 4 ++-- .../unlinked/UnlinkedDeclarationsProcessor.kt | 2 +- .../konan/serialization/KonanIrlinker.kt | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) rename compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/{UnlinkedDeclarationsSupport.kt => PartialLinkageSupport.kt} (93%) rename compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/{UnlinkedDeclarationsSupportImpl.kt => PartialLinkageSupportImpl.kt} (97%) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 2b81c2899a1..681bad46be2 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -9,8 +9,8 @@ import org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder import org.jetbrains.kotlin.backend.common.overrides.FileLocalAwareLinker import org.jetbrains.kotlin.backend.common.serialization.encodings.BinarySymbolData import org.jetbrains.kotlin.backend.common.serialization.linkerissues.* -import org.jetbrains.kotlin.backend.common.serialization.unlinked.UnlinkedDeclarationsSupport -import org.jetbrains.kotlin.backend.common.serialization.unlinked.UnlinkedDeclarationsSupportImpl +import org.jetbrains.kotlin.backend.common.serialization.unlinked.PartialLinkageSupport +import org.jetbrains.kotlin.backend.common.serialization.unlinked.PartialLinkageSupportImpl import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor @@ -53,10 +53,10 @@ abstract class KotlinIrLinker( private lateinit var linkerExtensions: Collection - val unlinkedDeclarationsSupport: UnlinkedDeclarationsSupport = if (partialLinkageEnabled) - UnlinkedDeclarationsSupportImpl(builtIns) + val partialLinkageSupport: PartialLinkageSupport = if (partialLinkageEnabled) + PartialLinkageSupportImpl(builtIns) else - UnlinkedDeclarationsSupport.DISABLED + PartialLinkageSupport.DISABLED protected open val userVisibleIrModulesSupport: UserVisibleIrModulesSupport get() = UserVisibleIrModulesSupport.DEFAULT @@ -78,7 +78,7 @@ abstract class KotlinIrLinker( val symbol: IrSymbol? = actualModuleDeserializer?.tryDeserializeIrSymbol(idSignature, symbolKind) return symbol ?: run { - if (unlinkedDeclarationsSupport.partialLinkageEnabled) + if (partialLinkageSupport.partialLinkageEnabled) referenceDeserializedSymbol(symbolTable, null, symbolKind, idSignature) else SignatureIdNotFoundInModuleWithDependencies( @@ -170,7 +170,7 @@ abstract class KotlinIrLinker( ?: tryResolveCustomDeclaration(symbol) ?: return null } catch (e: IrSymbolTypeMismatchException) { - if (!unlinkedDeclarationsSupport.partialLinkageEnabled) { + if (!partialLinkageSupport.partialLinkageEnabled) { SymbolTypeMismatch(e, deserializersForModules.values, userVisibleIrModulesSupport).raiseIssue(messageLogger) } } @@ -224,12 +224,12 @@ abstract class KotlinIrLinker( override fun postProcess() { finalizeExpectActualLinker() - unlinkedDeclarationsSupport.markUsedClassifiersExcludingUnlinkedFromFakeOverrideBuilding(fakeOverrideBuilder) + partialLinkageSupport.markUsedClassifiersExcludingUnlinkedFromFakeOverrideBuilding(fakeOverrideBuilder) fakeOverrideBuilder.provideFakeOverrides() triedToDeserializeDeclarationForSymbol.clear() - unlinkedDeclarationsSupport.processUnlinkedDeclarations(messageLogger) { + partialLinkageSupport.processUnlinkedDeclarations(messageLogger) { deserializersForModules.values.map { it.moduleFragment } } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/linkerissues/checks.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/linkerissues/checks.kt index ad90e8c7965..e30c0a9b043 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/linkerissues/checks.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/linkerissues/checks.kt @@ -35,7 +35,7 @@ internal inline fun checkErrorNodesAllowed(e // N.B. Checks for absence of unbound symbols only when unbound symbols are not allowed. fun KotlinIrLinker.checkNoUnboundSymbols(symbolTable: SymbolTable, whenDetected: String) { - if (!unlinkedDeclarationsSupport.partialLinkageEnabled) + if (!partialLinkageSupport.partialLinkageEnabled) messageLogger.checkNoUnboundSymbols(symbolTable, whenDetected) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsSupport.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupport.kt similarity index 93% rename from compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsSupport.kt rename to compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupport.kt index 4cc08b8cd4c..8d8875b9bc2 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsSupport.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupport.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.IrMessageLogger -interface UnlinkedDeclarationsSupport { +interface PartialLinkageSupport { val partialLinkageEnabled: Boolean /** For general use in IR linker. */ @@ -28,7 +28,7 @@ interface UnlinkedDeclarationsSupport { } companion object { - val DISABLED = object : UnlinkedDeclarationsSupport { + val DISABLED = object : PartialLinkageSupport { override val partialLinkageEnabled get() = false override fun markUsedClassifiersExcludingUnlinkedFromFakeOverrideBuilding(fakeOverrideBuilder: FakeOverrideBuilder) = Unit override fun markUsedClassifiersInInlineLazyIrFunction(function: IrFunction) = Unit diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsSupportImpl.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt similarity index 97% rename from compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsSupportImpl.kt rename to compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt index 6cd3ce5563d..512219c9967 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsSupportImpl.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.backend.common.serialization.unlinked import org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder -import org.jetbrains.kotlin.backend.common.serialization.unlinked.UnlinkedDeclarationsSupport.UnlinkedMarkerTypeHandler +import org.jetbrains.kotlin.backend.common.serialization.unlinked.PartialLinkageSupport.UnlinkedMarkerTypeHandler import org.jetbrains.kotlin.backend.common.serialization.unlinked.UsedClassifierSymbolStatus.* import org.jetbrains.kotlin.descriptors.NotFoundClasses import org.jetbrains.kotlin.ir.IrBuiltIns @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid -class UnlinkedDeclarationsSupportImpl(private val builtIns: IrBuiltIns) : UnlinkedDeclarationsSupport { +class PartialLinkageSupportImpl(private val builtIns: IrBuiltIns) : PartialLinkageSupport { private val handler = object : UnlinkedMarkerTypeHandler { override val unlinkedMarkerType = IrSimpleTypeImpl( classifier = builtIns.anyClass, diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt index 1fae64ed09c..24b8da4fec0 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.backend.common.serialization.unlinked -import org.jetbrains.kotlin.backend.common.serialization.unlinked.UnlinkedDeclarationsSupport.UnlinkedMarkerTypeHandler +import org.jetbrains.kotlin.backend.common.serialization.unlinked.PartialLinkageSupport.UnlinkedMarkerTypeHandler import org.jetbrains.kotlin.backend.common.serialization.unlinked.UsedClassifierSymbolStatus.Companion.isUnlinked import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.ir.IrBuiltIns diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt index 3b28c82a98b..f4327797a3b 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt @@ -721,12 +721,12 @@ internal class KonanIrLinker( } } - unlinkedDeclarationsSupport.markUsedClassifiersExcludingUnlinkedFromFakeOverrideBuilding(fakeOverrideBuilder) - unlinkedDeclarationsSupport.markUsedClassifiersInInlineLazyIrFunction(function) + partialLinkageSupport.markUsedClassifiersExcludingUnlinkedFromFakeOverrideBuilding(fakeOverrideBuilder) + partialLinkageSupport.markUsedClassifiersInInlineLazyIrFunction(function) fakeOverrideBuilder.provideFakeOverrides() - unlinkedDeclarationsSupport.processUnlinkedDeclarations(linker.messageLogger) { listOf(function) } + partialLinkageSupport.processUnlinkedDeclarations(linker.messageLogger) { listOf(function) } return InlineFunctionOriginInfo(function, fileDeserializationState.file, inlineFunctionReference.startOffset, inlineFunctionReference.endOffset) }