[FIR2IR] Run IrGenerationExtensions after fir2ir stage

This commit is contained in:
Dmitriy Novozhilov
2021-10-04 13:59:41 +03:00
committed by TeamCityServer
parent b3768a201f
commit fc1f2e9c72
6 changed files with 110 additions and 13 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir.analysis
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.fir.FirSession
@@ -45,6 +46,7 @@ class FirAnalyzerFacade(
val languageVersionSettings: LanguageVersionSettings,
val ktFiles: Collection<KtFile> = emptyList(), // may be empty if light tree mode enabled
val originalFiles: Collection<File> = emptyList(), // may be empty if light tree mode disabled
val irGeneratorExtensions: Collection<IrGenerationExtension>,
val useLightTree: Boolean = false,
val enablePluginPhases: Boolean = false,
) : AbstractFirAnalyzerFacade() {
@@ -113,7 +115,8 @@ class FirAnalyzerFacade(
languageVersionSettings, signaturer,
extensions, FirJvmKotlinMangler(session), IrFactoryImpl,
FirJvmVisibilityConverter,
Fir2IrJvmSpecialAnnotationSymbolProvider()
Fir2IrJvmSpecialAnnotationSymbolProvider(),
irGeneratorExtensions
)
}
}
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir.pipeline
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
@@ -22,7 +23,12 @@ import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmDescriptorMangler
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.psi2ir.generators.GeneratorExtensions
fun FirSession.convertToIr(scopeSession: ScopeSession, firFiles: List<FirFile>, extensions: GeneratorExtensions): Fir2IrResult {
fun FirSession.convertToIr(
scopeSession: ScopeSession,
firFiles: List<FirFile>,
extensions: GeneratorExtensions,
irGeneratorExtensions: Collection<IrGenerationExtension>
): Fir2IrResult {
val signaturer = JvmIdSignatureDescriptor(JvmDescriptorMangler(null))
val commonFirFiles = moduleData.dependsOnDependencies
@@ -35,6 +41,7 @@ fun FirSession.convertToIr(scopeSession: ScopeSession, firFiles: List<FirFile>,
languageVersionSettings, signaturer,
extensions, FirJvmKotlinMangler(this), IrFactoryImpl,
FirJvmVisibilityConverter,
Fir2IrJvmSpecialAnnotationSymbolProvider()
Fir2IrJvmSpecialAnnotationSymbolProvider(),
irGeneratorExtensions
)
}