[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:
Ivan Kylchik
2023-03-13 18:13:23 +01:00
committed by Space Team
parent 525098dea6
commit e16231104e
17 changed files with 67 additions and 37 deletions
@@ -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