[K2] Add Fir2IrConfiguration class to store configuration parameters
One example of such parameter is `linkViaSignatures`. There is `Psi2IrConfiguration` as an analog for K1.
This commit is contained in:
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.BinaryModuleData
|
||||
import org.jetbrains.kotlin.fir.DependencyListForCliModule
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.backend.ConstValueProviderImpl
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrVisibilityConverter
|
||||
import org.jetbrains.kotlin.fir.backend.extractFirDeclarations
|
||||
@@ -129,8 +130,8 @@ fun transformFirToIr(
|
||||
val firResult = FirResult(firOutputs)
|
||||
return firResult.convertToIrAndActualize(
|
||||
fir2IrExtensions,
|
||||
Fir2IrConfiguration(linkViaSignatures = false),
|
||||
IrGenerationExtension.getInstances(moduleStructure.project),
|
||||
linkViaSignatures = false,
|
||||
signatureComposerCreator = null,
|
||||
irMangler = JsManglerIr,
|
||||
firManglerCreator = ::FirJsKotlinMangler,
|
||||
|
||||
+4
-1
@@ -153,10 +153,13 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
performanceManager?.notifyIRTranslationStarted()
|
||||
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(moduleConfiguration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val fir2IrConfiguration = Fir2IrConfiguration(
|
||||
linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
|
||||
)
|
||||
val fir2IrAndIrActualizerResult = firResult.convertToIrAndActualizeForJvm(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
irGenerationExtensions,
|
||||
linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES),
|
||||
diagnosticsReporter,
|
||||
moduleConfiguration.languageVersionSettings
|
||||
)
|
||||
|
||||
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
@@ -230,10 +231,12 @@ fun convertAnalyzedFirToIr(
|
||||
(environment.projectEnvironment as? VfsBasedProjectEnvironment)?.project?.let {
|
||||
IrGenerationExtension.getInstances(it)
|
||||
} ?: emptyList()
|
||||
val linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
|
||||
val fir2IrConfiguration = Fir2IrConfiguration(
|
||||
linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
|
||||
)
|
||||
val (irModuleFragment, components, pluginContext, irActualizedResult) =
|
||||
analysisResults.convertToIrAndActualizeForJvm(
|
||||
extensions, irGenerationExtensions, linkViaSignatures,
|
||||
extensions, fir2IrConfiguration, irGenerationExtensions,
|
||||
environment.diagnosticsReporter, input.configuration.languageVersionSettings
|
||||
)
|
||||
|
||||
|
||||
@@ -46,14 +46,14 @@ data class Fir2IrActualizedResult(
|
||||
|
||||
fun FirResult.convertToIrAndActualizeForJvm(
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
fir2IrConfiguration: Fir2IrConfiguration,
|
||||
irGeneratorExtensions: Collection<IrGenerationExtension>,
|
||||
linkViaSignatures: Boolean,
|
||||
diagnosticReporter: DiagnosticReporter,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
): Fir2IrActualizedResult = this.convertToIrAndActualize(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
irGeneratorExtensions,
|
||||
linkViaSignatures = linkViaSignatures,
|
||||
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
|
||||
irMangler = JvmIrMangler,
|
||||
firManglerCreator = { FirJvmKotlinMangler() },
|
||||
@@ -65,8 +65,8 @@ fun FirResult.convertToIrAndActualizeForJvm(
|
||||
|
||||
fun FirResult.convertToIrAndActualize(
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
fir2IrConfiguration: Fir2IrConfiguration,
|
||||
irGeneratorExtensions: Collection<IrGenerationExtension>,
|
||||
linkViaSignatures: Boolean,
|
||||
signatureComposerCreator: (() -> IdSignatureComposer)?,
|
||||
irMangler: KotlinMangler.IrMangler,
|
||||
firManglerCreator: () -> FirMangler,
|
||||
@@ -80,7 +80,7 @@ fun FirResult.convertToIrAndActualize(
|
||||
val actualizationResult: IrActualizedResult?
|
||||
|
||||
val commonMemberStorage = Fir2IrCommonMemberStorage(
|
||||
generateSignatures = linkViaSignatures,
|
||||
generateSignatures = fir2IrConfiguration.linkViaSignatures,
|
||||
signatureComposerCreator = signatureComposerCreator,
|
||||
manglerCreator = firManglerCreator
|
||||
)
|
||||
@@ -90,8 +90,8 @@ fun FirResult.convertToIrAndActualize(
|
||||
1 -> {
|
||||
fir2IrResult = outputs.single().convertToIr(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
irGeneratorExtensions,
|
||||
linkViaSignatures = linkViaSignatures,
|
||||
commonMemberStorage = commonMemberStorage,
|
||||
irBuiltIns = null,
|
||||
irMangler,
|
||||
@@ -109,8 +109,8 @@ fun FirResult.convertToIrAndActualize(
|
||||
val commonIrOutputs = commonOutputs.map {
|
||||
it.convertToIr(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
irGeneratorExtensions,
|
||||
linkViaSignatures = linkViaSignatures,
|
||||
commonMemberStorage = commonMemberStorage,
|
||||
irBuiltIns = irBuiltIns,
|
||||
irMangler,
|
||||
@@ -125,8 +125,8 @@ fun FirResult.convertToIrAndActualize(
|
||||
}
|
||||
fir2IrResult = platformOutput.convertToIr(
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
irGeneratorExtensions,
|
||||
linkViaSignatures = linkViaSignatures,
|
||||
commonMemberStorage = commonMemberStorage,
|
||||
irBuiltIns = irBuiltIns!!,
|
||||
irMangler,
|
||||
@@ -151,8 +151,8 @@ fun FirResult.convertToIrAndActualize(
|
||||
|
||||
private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
fir2IrConfiguration: Fir2IrConfiguration,
|
||||
irGeneratorExtensions: Collection<IrGenerationExtension>,
|
||||
linkViaSignatures: Boolean,
|
||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||
irBuiltIns: IrBuiltInsOverFir?,
|
||||
irMangler: KotlinMangler.IrMangler,
|
||||
@@ -161,12 +161,11 @@ private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
||||
): Fir2IrResult {
|
||||
return Fir2IrConverter.createModuleFragmentWithSignaturesIfNeeded(
|
||||
session, scopeSession, fir,
|
||||
session.languageVersionSettings, fir2IrExtensions,
|
||||
session.languageVersionSettings, fir2IrExtensions, fir2IrConfiguration,
|
||||
irMangler, IrFactoryImpl, visibilityConverter,
|
||||
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation for other backends.
|
||||
irGeneratorExtensions,
|
||||
kotlinBuiltIns = kotlinBuiltIns,
|
||||
generateSignatures = linkViaSignatures,
|
||||
commonMemberStorage = commonMemberStorage,
|
||||
initializedIrBuiltIns = irBuiltIns
|
||||
)
|
||||
|
||||
@@ -341,7 +341,7 @@ class Fir2IrClassifierStorage(
|
||||
ClassKind.ANNOTATION_CLASS -> Modality.OPEN
|
||||
else -> regularClass.modality ?: Modality.FINAL
|
||||
}
|
||||
val signature = runUnless(regularClass.isLocal || !generateSignatures) {
|
||||
val signature = runUnless(regularClass.isLocal || !configuration.linkViaSignatures) {
|
||||
signatureComposer.composeSignature(regularClass)
|
||||
}
|
||||
val irClass = regularClass.convertWithOffsets { startOffset, endOffset ->
|
||||
@@ -591,7 +591,7 @@ class Fir2IrClassifierStorage(
|
||||
// firClass may be referenced by some parent's type parameters as a bound. In that case, getIrClassSymbol will be called recursively.
|
||||
getCachedIrClass(firClass)?.let { return it.symbol }
|
||||
|
||||
val signature = runIf(generateSignatures) {
|
||||
val signature = runIf(configuration.linkViaSignatures) {
|
||||
signatureComposer.composeSignature(firClass, forceTopLevelPrivate = forceTopLevelPrivate)
|
||||
}
|
||||
val irClass = firClass.convertWithOffsets { startOffset, endOffset ->
|
||||
|
||||
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator
|
||||
import org.jetbrains.kotlin.fir.backend.generators.DelegatedMemberGenerator
|
||||
import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrLock
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||
@@ -43,5 +42,5 @@ interface Fir2IrComponents {
|
||||
val delegatedMemberGenerator: DelegatedMemberGenerator
|
||||
|
||||
val extensions: Fir2IrExtensions
|
||||
val generateSignatures: Boolean
|
||||
val configuration: Fir2IrConfiguration
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.backend.generators.DelegatedMemberGenerator
|
||||
import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrLock
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||
@@ -25,7 +24,7 @@ class Fir2IrComponentsStorage(
|
||||
override val irFactory: IrFactory,
|
||||
override val signatureComposer: FirBasedSignatureComposer,
|
||||
override val extensions: Fir2IrExtensions,
|
||||
override val generateSignatures: Boolean
|
||||
override val configuration: Fir2IrConfiguration,
|
||||
) : Fir2IrComponents {
|
||||
|
||||
override lateinit var converter: Fir2IrConverter
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.backend
|
||||
|
||||
data class Fir2IrConfiguration(
|
||||
val linkViaSignatures: Boolean
|
||||
)
|
||||
@@ -50,7 +50,7 @@ class Fir2IrConverter(
|
||||
private var wereSourcesFakeOverridesBound = false
|
||||
private val postponedDeclarationsForFakeOverridesBinding = mutableListOf<IrDeclaration>()
|
||||
|
||||
fun runSourcesConversion(
|
||||
private fun runSourcesConversion(
|
||||
allFirFiles: List<FirFile>,
|
||||
irModuleFragment: IrModuleFragmentImpl,
|
||||
irGenerationExtensions: Collection<IrGenerationExtension>,
|
||||
@@ -442,12 +442,12 @@ class Fir2IrConverter(
|
||||
firFiles: List<FirFile>,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
fir2IrExtensions: Fir2IrExtensions,
|
||||
fir2IrConfiguration: Fir2IrConfiguration,
|
||||
irMangler: KotlinMangler.IrMangler,
|
||||
irFactory: IrFactory,
|
||||
visibilityConverter: Fir2IrVisibilityConverter,
|
||||
specialSymbolProvider: Fir2IrSpecialSymbolProvider,
|
||||
irGenerationExtensions: Collection<IrGenerationExtension>,
|
||||
generateSignatures: Boolean,
|
||||
kotlinBuiltIns: KotlinBuiltIns,
|
||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||
initializedIrBuiltIns: IrBuiltInsOverFir?
|
||||
@@ -460,7 +460,7 @@ class Fir2IrConverter(
|
||||
irFactory,
|
||||
commonMemberStorage.signatureComposer,
|
||||
fir2IrExtensions,
|
||||
generateSignatures
|
||||
fir2IrConfiguration,
|
||||
)
|
||||
val converter = Fir2IrConverter(moduleDescriptor, components)
|
||||
|
||||
|
||||
+3
-3
@@ -526,7 +526,7 @@ class Fir2IrDeclarationStorage(
|
||||
val signature =
|
||||
runUnless(
|
||||
isLocal ||
|
||||
!generateSignatures && irParent !is Fir2IrLazyClass &&
|
||||
!configuration.linkViaSignatures && irParent !is Fir2IrLazyClass &&
|
||||
function.dispatchReceiverType?.isPrimitive != true && function.containerSource == null &&
|
||||
updatedOrigin != IrDeclarationOrigin.FAKE_OVERRIDE && !function.isOverride
|
||||
) {
|
||||
@@ -632,7 +632,7 @@ class Fir2IrDeclarationStorage(
|
||||
val origin = constructor.computeIrOrigin(predefinedOrigin)
|
||||
val isPrimary = constructor.isPrimary
|
||||
val signature =
|
||||
runUnless(isLocal || !generateSignatures) {
|
||||
runUnless(isLocal || !configuration.linkViaSignatures) {
|
||||
signatureComposer.composeSignature(constructor, forceTopLevelPrivate = forceTopLevelPrivate)
|
||||
}
|
||||
val visibility = if (irParent.isAnonymousObject) Visibilities.Public else constructor.visibility
|
||||
@@ -868,7 +868,7 @@ class Fir2IrDeclarationStorage(
|
||||
val signature =
|
||||
runUnless(
|
||||
isLocal ||
|
||||
!generateSignatures && irParent !is Fir2IrLazyClass &&
|
||||
!configuration.linkViaSignatures && irParent !is Fir2IrLazyClass &&
|
||||
property.dispatchReceiverType?.isPrimitive != true && property.containerSource == null &&
|
||||
origin != IrDeclarationOrigin.FAKE_OVERRIDE && !property.isOverride
|
||||
) {
|
||||
|
||||
+3
-1
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.cli.jvm.config.*
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.pipeline.FirResult
|
||||
import org.jetbrains.kotlin.fir.pipeline.convertToIrAndActualizeForJvm
|
||||
@@ -273,12 +274,13 @@ class IncrementalFirJvmCompilerRunner(
|
||||
performanceManager?.notifyIRTranslationStarted()
|
||||
|
||||
val extensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val fir2IrConfiguration = Fir2IrConfiguration(linkViaSignatures = false)
|
||||
val irGenerationExtensions =
|
||||
(projectEnvironment as? VfsBasedProjectEnvironment)?.project?.let { IrGenerationExtension.getInstances(it) }.orEmpty()
|
||||
val (irModuleFragment, components, pluginContext, irActualizedResult) = cycleResult.convertToIrAndActualizeForJvm(
|
||||
extensions,
|
||||
fir2IrConfiguration,
|
||||
irGenerationExtensions,
|
||||
linkViaSignatures = false,
|
||||
compilerEnvironment.diagnosticsReporter,
|
||||
configuration.languageVersionSettings
|
||||
)
|
||||
|
||||
+1
-1
@@ -151,11 +151,11 @@ fun AbstractFirAnalyzerFacade.convertToJsIr(
|
||||
session, scopeSession, firFiles.toList(),
|
||||
languageVersionSettings,
|
||||
fir2IrExtensions,
|
||||
Fir2IrConfiguration(linkViaSignatures = false),
|
||||
JsManglerIr, IrFactoryImpl,
|
||||
Fir2IrVisibilityConverter.Default,
|
||||
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation
|
||||
irGeneratorExtensions,
|
||||
generateSignatures = false,
|
||||
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||
commonMemberStorage = commonMemberStorage,
|
||||
initializedIrBuiltIns = irBuiltIns
|
||||
|
||||
+2
-2
@@ -86,8 +86,8 @@ class Fir2IrResultsConverter(
|
||||
lateinit var mainIrPart: JvmIrCodegenFactory.JvmIrBackendInput
|
||||
lateinit var mainModuleComponents: Fir2IrComponents
|
||||
|
||||
val generateSignatures =
|
||||
(inputArtifact.partsForDependsOnModules.last().firAnalyzerFacade as? FirAnalyzerFacade)?.generateSignatures == true
|
||||
val firAnalyzerFacade = inputArtifact.partsForDependsOnModules.last().firAnalyzerFacade as? FirAnalyzerFacade
|
||||
val generateSignatures = firAnalyzerFacade?.fir2IrConfiguration?.linkViaSignatures == true
|
||||
|
||||
val commonMemberStorage = Fir2IrCommonMemberStorage(
|
||||
generateSignatures = generateSignatures,
|
||||
|
||||
+3
-2
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.cli.jvm.config.jvmModularRoots
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.container.topologicalSort
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
@@ -37,9 +38,9 @@ import org.jetbrains.kotlin.platform.isJs
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
import org.jetbrains.kotlin.platform.konan.isNative
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.FirParser
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.FirParser
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
import org.jetbrains.kotlin.test.directives.model.singleValue
|
||||
import org.jetbrains.kotlin.test.getAnalyzerServices
|
||||
@@ -304,12 +305,12 @@ open class FirFrontendFacade(
|
||||
val firAnalyzerFacade = FirAnalyzerFacade(
|
||||
moduleBasedSession,
|
||||
module.languageVersionSettings,
|
||||
Fir2IrConfiguration(linkViaSignatures = module.targetBackend == TargetBackend.JVM_IR_SERIALIZE),
|
||||
ktFiles,
|
||||
lightTreeFiles,
|
||||
IrGenerationExtension.getInstances(project),
|
||||
parser,
|
||||
enablePluginPhases,
|
||||
generateSignatures = module.targetBackend == TargetBackend.JVM_IR_SERIALIZE
|
||||
)
|
||||
val firFiles = firAnalyzerFacade.runResolution()
|
||||
val filesMap = firFiles.mapNotNull { firFile ->
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
||||
import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
||||
@@ -122,16 +123,16 @@ object GenerationUtils {
|
||||
val firAnalyzerFacade = FirAnalyzerFacade(
|
||||
session,
|
||||
configuration.languageVersionSettings,
|
||||
Fir2IrConfiguration(linkViaSignatures = false),
|
||||
files,
|
||||
emptyList(),
|
||||
IrGenerationExtension.getInstances(project),
|
||||
FirParser.Psi,
|
||||
generateSignatures = false
|
||||
)
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
|
||||
val commonMemberStorage = Fir2IrCommonMemberStorage(
|
||||
generateSignatures = firAnalyzerFacade.generateSignatures,
|
||||
generateSignatures = firAnalyzerFacade.fir2IrConfiguration.linkViaSignatures,
|
||||
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
|
||||
manglerCreator = { FirJvmKotlinMangler() }
|
||||
)
|
||||
|
||||
@@ -43,12 +43,12 @@ abstract class AbstractFirAnalyzerFacade {
|
||||
class FirAnalyzerFacade(
|
||||
val session: FirSession,
|
||||
val languageVersionSettings: LanguageVersionSettings,
|
||||
val fir2IrConfiguration: Fir2IrConfiguration,
|
||||
val ktFiles: Collection<KtFile> = emptyList(), // may be empty if light tree mode enabled
|
||||
val lightTreeFiles: Collection<LightTreeFile> = emptyList(), // may be empty if light tree mode disabled
|
||||
val irGeneratorExtensions: Collection<IrGenerationExtension>,
|
||||
val parser: FirParser,
|
||||
val enablePluginPhases: Boolean = false,
|
||||
val generateSignatures: Boolean = false
|
||||
) : AbstractFirAnalyzerFacade() {
|
||||
private var firFiles: List<FirFile>? = null
|
||||
private var _scopeSession: ScopeSession? = null
|
||||
@@ -116,11 +116,11 @@ class FirAnalyzerFacade(
|
||||
session, _scopeSession!!, firFiles!!,
|
||||
languageVersionSettings,
|
||||
fir2IrExtensions,
|
||||
fir2IrConfiguration,
|
||||
JvmIrMangler, IrFactoryImpl,
|
||||
FirJvmVisibilityConverter,
|
||||
Fir2IrJvmSpecialAnnotationSymbolProvider(),
|
||||
irGeneratorExtensions,
|
||||
generateSignatures,
|
||||
kotlinBuiltIns = DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||
commonMemberStorage = commonMemberStorage,
|
||||
initializedIrBuiltIns = irBuiltIns
|
||||
|
||||
+2
-1
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentTypeTransformer
|
||||
import org.jetbrains.kotlin.descriptors.isEmpty
|
||||
import org.jetbrains.kotlin.descriptors.konan.isNativeStdlib
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||
import org.jetbrains.kotlin.fir.backend.*
|
||||
import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
|
||||
@@ -72,8 +73,8 @@ internal fun PhaseContext.fir2Ir(
|
||||
|
||||
val (irModuleFragment, components, pluginContext, irActualizedResult) = input.firResult.convertToIrAndActualize(
|
||||
fir2IrExtensions,
|
||||
Fir2IrConfiguration(linkViaSignatures = false),
|
||||
IrGenerationExtension.getInstances(config.project),
|
||||
linkViaSignatures = false,
|
||||
signatureComposerCreator = null,
|
||||
irMangler = KonanManglerIr,
|
||||
firManglerCreator = { FirNativeKotlinMangler() },
|
||||
|
||||
Reference in New Issue
Block a user