[IR] Avoid depending from fir2ir on ir.actualization module
^KT-62292
This commit is contained in:
committed by
Space Team
parent
cf6792ec65
commit
021a00f4ff
@@ -280,7 +280,7 @@ private class Fir2KlibSerializer(
|
||||
}
|
||||
|
||||
private val actualizedExpectDeclarations by lazy {
|
||||
fir2IrActualizedResult.irActualizedResult.extractFirDeclarations()
|
||||
fir2IrActualizedResult.irActualizedResult?.actualizedExpectDeclarations?.extractFirDeclarations()
|
||||
}
|
||||
|
||||
private val metadataVersion = moduleStructure.compilerConfiguration.metadataVersion()
|
||||
|
||||
+3
-1
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys.LOOKUP_TRACKER
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
|
||||
import org.jetbrains.kotlin.fir.backend.extractFirDeclarations
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
@@ -188,7 +189,8 @@ object KotlinToJVMBytecodeCompiler {
|
||||
NoScopeRecordCliBindingTrace().bindingContext,
|
||||
FirJvmBackendClassResolver(fir2IrAndIrActualizerResult.components),
|
||||
FirJvmBackendExtension(
|
||||
fir2IrAndIrActualizerResult.components, fir2IrAndIrActualizerResult.irActualizedResult
|
||||
fir2IrAndIrActualizerResult.components,
|
||||
fir2IrAndIrActualizerResult.irActualizedResult?.actualizedExpectDeclarations?.extractFirDeclarations()
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.backend.extractFirDeclarations
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.*
|
||||
import org.jetbrains.kotlin.fir.extensions.FirAnalysisHandlerExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
@@ -262,7 +263,10 @@ fun generateCodeFromIr(
|
||||
input.components.symbolTable,
|
||||
input.components.irProviders,
|
||||
input.extensions,
|
||||
FirJvmBackendExtension(input.components, input.irActualizedResult),
|
||||
FirJvmBackendExtension(
|
||||
input.components,
|
||||
input.irActualizedResult?.actualizedExpectDeclarations?.extractFirDeclarations()
|
||||
),
|
||||
input.pluginContext
|
||||
) {
|
||||
performanceManager?.notifyIRLoweringFinished()
|
||||
|
||||
@@ -15,7 +15,6 @@ dependencies {
|
||||
compileOnly(project(":compiler:fir:tree"))
|
||||
compileOnly(project(":compiler:ir.tree"))
|
||||
compileOnly(project(":compiler:ir.backend.common"))
|
||||
compileOnly(project(":compiler:ir.actualization"))
|
||||
compileOnly(project(":compiler:ir.serialization.common"))
|
||||
compileOnly(project(":compiler:fir:fir-serialization"))
|
||||
compileOnly(project(":compiler:fir:fir-deserialization"))
|
||||
|
||||
@@ -17,7 +17,6 @@ dependencies {
|
||||
compileOnly(project(":compiler:ir.tree"))
|
||||
compileOnly(project(":compiler:backend"))
|
||||
compileOnly(project(":compiler:backend.jvm"))
|
||||
implementation(project(":compiler:ir.actualization"))
|
||||
api(project(":compiler:ir.serialization.common"))
|
||||
|
||||
compileOnly(intellijCore())
|
||||
|
||||
+3
-3
@@ -5,18 +5,18 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendExtension
|
||||
import org.jetbrains.kotlin.backend.jvm.metadata.MetadataSerializer
|
||||
import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
|
||||
class FirJvmBackendExtension(
|
||||
private val components: Fir2IrComponents,
|
||||
private val irActualizedResult: IrActualizedResult?
|
||||
private val actualizedExpectDeclarations: Set<FirDeclaration>?
|
||||
) : JvmBackendExtension {
|
||||
override fun createSerializer(
|
||||
context: JvmBackendContext,
|
||||
@@ -32,7 +32,7 @@ class FirJvmBackendExtension(
|
||||
bindings,
|
||||
components,
|
||||
parentSerializer,
|
||||
irActualizedResult
|
||||
actualizedExpectDeclarations
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-8
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.fir.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||
import org.jetbrains.kotlin.backend.jvm.metadata.MetadataSerializer
|
||||
@@ -16,7 +15,6 @@ import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||
import org.jetbrains.kotlin.fir.backend.FirMetadataSource
|
||||
import org.jetbrains.kotlin.fir.backend.extractFirDeclarations
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
@@ -46,7 +44,7 @@ fun makeFirMetadataSerializerForIrClass(
|
||||
serializationBindings: JvmSerializationBindings,
|
||||
components: Fir2IrComponents,
|
||||
parent: MetadataSerializer?,
|
||||
irActualizedResult: IrActualizedResult?
|
||||
actualizedExpectDeclarations: Set<FirDeclaration>?
|
||||
): FirMetadataSerializer {
|
||||
val approximator = TypeApproximatorForMetadataSerializer(session)
|
||||
val localDelegatedProperties = context.localDelegatedProperties[irClass.attributeOwnerId]?.mapNotNull {
|
||||
@@ -64,7 +62,7 @@ fun makeFirMetadataSerializerForIrClass(
|
||||
irClass.metadata, components.session, components.scopeSession, firSerializerExtension, approximator, parent,
|
||||
context.config.languageVersionSettings,
|
||||
),
|
||||
irActualizedResult
|
||||
actualizedExpectDeclarations
|
||||
)
|
||||
}
|
||||
|
||||
@@ -76,7 +74,7 @@ fun makeLocalFirMetadataSerializerForMetadataSource(
|
||||
parent: MetadataSerializer?,
|
||||
targetId: TargetId,
|
||||
configuration: CompilerConfiguration,
|
||||
irActualizedResult: IrActualizedResult?
|
||||
actualizedExpectDeclarations: Set<FirDeclaration>?
|
||||
): FirMetadataSerializer {
|
||||
val serializationBindings = JvmSerializationBindings()
|
||||
val approximator = TypeApproximatorForMetadataSerializer(session)
|
||||
@@ -110,7 +108,7 @@ fun makeLocalFirMetadataSerializerForMetadataSource(
|
||||
metadata, session, scopeSession, firSerializerExtension, approximator, parent,
|
||||
configuration.languageVersionSettings
|
||||
),
|
||||
irActualizedResult
|
||||
actualizedExpectDeclarations
|
||||
)
|
||||
}
|
||||
|
||||
@@ -119,9 +117,8 @@ class FirMetadataSerializer(
|
||||
private val serializationBindings: JvmSerializationBindings,
|
||||
private val approximator: AbstractTypeApproximator,
|
||||
internal val serializer: FirElementSerializer?,
|
||||
irActualizedResult: IrActualizedResult?
|
||||
private val actualizedExpectDeclarations: Set<FirDeclaration>?
|
||||
) : MetadataSerializer {
|
||||
private val actualizedExpectDeclarations = irActualizedResult.extractFirDeclarations()
|
||||
|
||||
override fun serialize(metadata: MetadataSource): Pair<MessageLite, JvmStringTable>? {
|
||||
val message = when (metadata) {
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.intellij.psi.PsiCompiledElement
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.tree.IElementType
|
||||
import org.jetbrains.kotlin.*
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
||||
import org.jetbrains.kotlin.builtins.StandardNames.DATA_CLASS_COMPONENT_PREFIX
|
||||
import org.jetbrains.kotlin.descriptors.ValueClassRepresentation
|
||||
import org.jetbrains.kotlin.diagnostics.startOffsetSkippingComments
|
||||
@@ -770,8 +769,8 @@ fun FirCallableDeclaration.contextReceiversForFunctionOrContainingProperty(): Li
|
||||
else
|
||||
this.contextReceivers
|
||||
|
||||
fun IrActualizedResult?.extractFirDeclarations(): Set<FirDeclaration>? {
|
||||
return this?.actualizedExpectDeclarations?.mapNotNullTo(mutableSetOf()) { ((it as IrMetadataSourceOwner).metadata as FirMetadataSource).fir }
|
||||
fun List<IrDeclaration>.extractFirDeclarations(): Set<FirDeclaration> {
|
||||
return this.mapNotNullTo(mutableSetOf()) { ((it as IrMetadataSourceOwner).metadata as FirMetadataSource).fir }
|
||||
}
|
||||
|
||||
// This method is intended to be used for default values of annotation parameters (compile-time strings, numbers, enum values, KClasses)
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.KtPsiSourceFileLinesMapping
|
||||
import org.jetbrains.kotlin.KtSourceFileLinesMappingFromLineStartOffsets
|
||||
import org.jetbrains.kotlin.backend.common.CommonBackendErrors
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.FakeOverrideRebuilder
|
||||
import org.jetbrains.kotlin.ir.overrides.FakeOverrideRebuilder
|
||||
import org.jetbrains.kotlin.backend.common.sourceElement
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ internal fun collectNewDirtySources(
|
||||
data.lastOrNull(),
|
||||
targetId,
|
||||
configuration,
|
||||
irActualizedResult = null
|
||||
actualizedExpectDeclarations = null
|
||||
)
|
||||
data.push(serializer)
|
||||
body(serializer)
|
||||
|
||||
+1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.checker.IrExpectActualCheckers
|
||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.overrides.FakeOverrideRebuilder
|
||||
import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrTypeSystemContext
|
||||
|
||||
+1
-2
@@ -3,7 +3,7 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer
|
||||
package org.jetbrains.kotlin.ir.overrides
|
||||
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
|
||||
import org.jetbrains.kotlin.ir.expressions.IrLocalDelegatedPropertyReference
|
||||
import org.jetbrains.kotlin.ir.expressions.IrPropertyReference
|
||||
import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.types.getClass
|
||||
+1
-1
@@ -131,7 +131,7 @@ class Fir2IrJsResultsConverter(
|
||||
val (firFile, components) = firFilesAndComponentsBySourceFile[file]
|
||||
?: error("cannot find FIR file by source file ${file.name} (${file.path})")
|
||||
if (actualizedExpectDeclarations == null && irActualizedResult != null) {
|
||||
actualizedExpectDeclarations = irActualizedResult.extractFirDeclarations()
|
||||
actualizedExpectDeclarations = irActualizedResult.actualizedExpectDeclarations.extractFirDeclarations()
|
||||
}
|
||||
serializeSingleFirFile(
|
||||
firFile,
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ class Fir2IrJvmResultsConverter(
|
||||
phaseConfig,
|
||||
components.irProviders,
|
||||
fir2IrExtensions,
|
||||
FirJvmBackendExtension(components, irActualizedResult = null),
|
||||
FirJvmBackendExtension(components, actualizedExpectDeclarations = null),
|
||||
pluginContext,
|
||||
notifyCodegenStart = {},
|
||||
)
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ class Fir2IrWasmResultsConverter(
|
||||
val (firFile, components) = firFilesAndComponentsBySourceFile[file]
|
||||
?: error("cannot find FIR file by source file ${file.name} (${file.path})")
|
||||
if (actualizedExpectDeclarations == null && irActualizedResult != null) {
|
||||
actualizedExpectDeclarations = irActualizedResult.extractFirDeclarations()
|
||||
actualizedExpectDeclarations = irActualizedResult.actualizedExpectDeclarations.extractFirDeclarations()
|
||||
}
|
||||
serializeSingleFirFile(
|
||||
firFile,
|
||||
|
||||
@@ -176,7 +176,7 @@ object GenerationUtils {
|
||||
generationState.oldBEInitTrace(files)
|
||||
codegenFactory.generateModuleInFrontendIRMode(
|
||||
generationState, moduleFragment, components.symbolTable, components.irProviders,
|
||||
fir2IrExtensions, FirJvmBackendExtension(components, irActualizedResult = null), pluginContext,
|
||||
fir2IrExtensions, FirJvmBackendExtension(components, actualizedExpectDeclarations = null), pluginContext,
|
||||
) {}
|
||||
|
||||
generationState.factory.done()
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ internal fun PhaseContext.firSerializerBase(
|
||||
}
|
||||
}
|
||||
|
||||
val actualizedFirDeclarations = fir2IrInput?.irActualizedResult?.extractFirDeclarations()
|
||||
val actualizedFirDeclarations = fir2IrInput?.irActualizedResult?.actualizedExpectDeclarations?.extractFirDeclarations()
|
||||
return serializeNativeModule(
|
||||
configuration = configuration,
|
||||
messageLogger = configuration.get(IrMessageLogger.IR_MESSAGE_LOGGER) ?: IrMessageLogger.None,
|
||||
|
||||
Reference in New Issue
Block a user