[FIR] Run irGenerationExtensions after IR actualization
^KT-56173 Fixed
This commit is contained in:
committed by
Space Team
parent
81da96fed3
commit
8e73d5a54a
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.pipeline
|
|||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
||||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||||
|
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
@@ -96,7 +97,6 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
fir2IrResult = outputs.single().convertToIr(
|
fir2IrResult = outputs.single().convertToIr(
|
||||||
fir2IrExtensions,
|
fir2IrExtensions,
|
||||||
fir2IrConfiguration,
|
fir2IrConfiguration,
|
||||||
irGeneratorExtensions,
|
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
irBuiltIns = null,
|
irBuiltIns = null,
|
||||||
irMangler,
|
irMangler,
|
||||||
@@ -115,7 +115,6 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
it.convertToIr(
|
it.convertToIr(
|
||||||
fir2IrExtensions,
|
fir2IrExtensions,
|
||||||
fir2IrConfiguration,
|
fir2IrConfiguration,
|
||||||
irGeneratorExtensions,
|
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
irBuiltIns = irBuiltIns,
|
irBuiltIns = irBuiltIns,
|
||||||
irMangler,
|
irMangler,
|
||||||
@@ -131,7 +130,6 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
fir2IrResult = platformOutput.convertToIr(
|
fir2IrResult = platformOutput.convertToIr(
|
||||||
fir2IrExtensions,
|
fir2IrExtensions,
|
||||||
fir2IrConfiguration,
|
fir2IrConfiguration,
|
||||||
irGeneratorExtensions,
|
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
irBuiltIns = irBuiltIns!!,
|
irBuiltIns = irBuiltIns!!,
|
||||||
irMangler,
|
irMangler,
|
||||||
@@ -152,13 +150,25 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val (irModuleFragment, components, pluginContext) = fir2IrResult
|
val (irModuleFragment, components, pluginContext) = fir2IrResult
|
||||||
|
components.applyIrGenerationExtensions(irModuleFragment, irGeneratorExtensions)
|
||||||
return Fir2IrActualizedResult(irModuleFragment, components, pluginContext, actualizationResult)
|
return Fir2IrActualizedResult(irModuleFragment, components, pluginContext, actualizationResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Fir2IrComponents.applyIrGenerationExtensions(irModuleFragment: IrModuleFragment, irGenerationExtensions: Collection<IrGenerationExtension>) {
|
||||||
|
if (irGenerationExtensions.isEmpty()) return
|
||||||
|
Fir2IrPluginContext(this, irModuleFragment.descriptor).applyIrGenerationExtensions(irModuleFragment, irGenerationExtensions)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun IrPluginContext.applyIrGenerationExtensions(irModuleFragment: IrModuleFragment, irGenerationExtensions: Collection<IrGenerationExtension>) {
|
||||||
|
if (irGenerationExtensions.isEmpty()) return
|
||||||
|
for (extension in irGenerationExtensions) {
|
||||||
|
extension.generate(irModuleFragment, this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
||||||
fir2IrExtensions: Fir2IrExtensions,
|
fir2IrExtensions: Fir2IrExtensions,
|
||||||
fir2IrConfiguration: Fir2IrConfiguration,
|
fir2IrConfiguration: Fir2IrConfiguration,
|
||||||
irGeneratorExtensions: Collection<IrGenerationExtension>,
|
|
||||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||||
irBuiltIns: IrBuiltInsOverFir?,
|
irBuiltIns: IrBuiltInsOverFir?,
|
||||||
irMangler: KotlinMangler.IrMangler,
|
irMangler: KotlinMangler.IrMangler,
|
||||||
@@ -170,7 +180,6 @@ private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
|||||||
fir2IrExtensions, fir2IrConfiguration,
|
fir2IrExtensions, fir2IrConfiguration,
|
||||||
irMangler, IrFactoryImpl, visibilityConverter,
|
irMangler, IrFactoryImpl, visibilityConverter,
|
||||||
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation for other backends.
|
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation for other backends.
|
||||||
irGeneratorExtensions,
|
|
||||||
kotlinBuiltIns = kotlinBuiltIns,
|
kotlinBuiltIns = kotlinBuiltIns,
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
initializedIrBuiltIns = irBuiltIns
|
initializedIrBuiltIns = irBuiltIns
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ class Fir2IrConverter(
|
|||||||
private fun runSourcesConversion(
|
private fun runSourcesConversion(
|
||||||
allFirFiles: List<FirFile>,
|
allFirFiles: List<FirFile>,
|
||||||
irModuleFragment: IrModuleFragmentImpl,
|
irModuleFragment: IrModuleFragmentImpl,
|
||||||
irGenerationExtensions: Collection<IrGenerationExtension>,
|
|
||||||
fir2irVisitor: Fir2IrVisitor,
|
fir2irVisitor: Fir2IrVisitor,
|
||||||
fir2IrExtensions: Fir2IrExtensions,
|
fir2IrExtensions: Fir2IrExtensions,
|
||||||
runPreCacheBuiltinClasses: Boolean
|
runPreCacheBuiltinClasses: Boolean
|
||||||
@@ -100,13 +99,6 @@ class Fir2IrConverter(
|
|||||||
|
|
||||||
evaluateConstants(irModuleFragment, configuration)
|
evaluateConstants(irModuleFragment, configuration)
|
||||||
|
|
||||||
if (irGenerationExtensions.isNotEmpty()) {
|
|
||||||
val pluginContext = Fir2IrPluginContext(components, irModuleFragment.descriptor)
|
|
||||||
for (extension in irGenerationExtensions) {
|
|
||||||
extension.generate(irModuleFragment, pluginContext)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
irModuleFragment.acceptVoid(ExternalPackageParentPatcher(components, fir2IrExtensions))
|
irModuleFragment.acceptVoid(ExternalPackageParentPatcher(components, fir2IrExtensions))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -461,7 +453,6 @@ class Fir2IrConverter(
|
|||||||
irFactory: IrFactory,
|
irFactory: IrFactory,
|
||||||
visibilityConverter: Fir2IrVisibilityConverter,
|
visibilityConverter: Fir2IrVisibilityConverter,
|
||||||
specialSymbolProvider: Fir2IrSpecialSymbolProvider,
|
specialSymbolProvider: Fir2IrSpecialSymbolProvider,
|
||||||
irGenerationExtensions: Collection<IrGenerationExtension>,
|
|
||||||
kotlinBuiltIns: KotlinBuiltIns,
|
kotlinBuiltIns: KotlinBuiltIns,
|
||||||
commonMemberStorage: Fir2IrCommonMemberStorage,
|
commonMemberStorage: Fir2IrCommonMemberStorage,
|
||||||
initializedIrBuiltIns: IrBuiltInsOverFir?
|
initializedIrBuiltIns: IrBuiltInsOverFir?
|
||||||
@@ -508,7 +499,7 @@ class Fir2IrConverter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
converter.runSourcesConversion(
|
converter.runSourcesConversion(
|
||||||
allFirFiles, irModuleFragment, irGenerationExtensions, fir2irVisitor, fir2IrExtensions,
|
allFirFiles, irModuleFragment, fir2irVisitor, fir2IrExtensions,
|
||||||
runPreCacheBuiltinClasses = initializedIrBuiltIns == null
|
runPreCacheBuiltinClasses = initializedIrBuiltIns == null
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+5
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
|||||||
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
|
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
|
||||||
import org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl
|
import org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl
|
||||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
@@ -32,6 +33,10 @@ class ActualizerOnlyFacade(
|
|||||||
typeSystemContext,
|
typeSystemContext,
|
||||||
testServices.compilerConfigurationProvider.getCompilerConfiguration(module).languageVersionSettings
|
testServices.compilerConfigurationProvider.getCompilerConfiguration(module).languageVersionSettings
|
||||||
)
|
)
|
||||||
|
inputArtifact.irPluginContext.applyIrGenerationExtensions(
|
||||||
|
inputArtifact.irModuleFragment,
|
||||||
|
irGenerationExtensions = module.irGenerationExtensions(testServices)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return inputArtifact
|
return inputArtifact
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-5
@@ -8,14 +8,15 @@ package org.jetbrains.kotlin.test.backend.ir
|
|||||||
import org.jetbrains.kotlin.KtPsiSourceFile
|
import org.jetbrains.kotlin.KtPsiSourceFile
|
||||||
import org.jetbrains.kotlin.backend.common.BackendException
|
import org.jetbrains.kotlin.backend.common.BackendException
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
||||||
|
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.MultifileFacadeFileEntry
|
import org.jetbrains.kotlin.backend.jvm.MultifileFacadeFileEntry
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.getFileClassInfoFromIrFile
|
import org.jetbrains.kotlin.backend.jvm.lower.getFileClassInfoFromIrFile
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
||||||
|
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
|
||||||
import org.jetbrains.kotlin.ir.PsiIrFileEntry
|
import org.jetbrains.kotlin.ir.PsiIrFileEntry
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl
|
|
||||||
import org.jetbrains.kotlin.ir.util.NaiveSourceBasedFileEntryImpl
|
import org.jetbrains.kotlin.ir.util.NaiveSourceBasedFileEntryImpl
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.test.backend.classic.JavaCompilerFacade
|
import org.jetbrains.kotlin.test.backend.classic.JavaCompilerFacade
|
||||||
@@ -45,6 +46,10 @@ class JvmIrBackendFacade(
|
|||||||
JvmIrTypeSystemContext(inputArtifact.irModuleFragment.irBuiltins),
|
JvmIrTypeSystemContext(inputArtifact.irModuleFragment.irBuiltins),
|
||||||
inputArtifact.state.languageVersionSettings
|
inputArtifact.state.languageVersionSettings
|
||||||
)
|
)
|
||||||
|
inputArtifact.irPluginContext.applyIrGenerationExtensions(
|
||||||
|
inputArtifact.irModuleFragment,
|
||||||
|
module.irGenerationExtensions(testServices)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
val state = inputArtifact.state
|
val state = inputArtifact.state
|
||||||
@@ -91,8 +96,12 @@ class JvmIrBackendFacade(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
private fun TestModule.useIrActualizer(): Boolean {
|
|
||||||
return frontendKind == FrontendKinds.FIR && languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)
|
internal fun TestModule.useIrActualizer(): Boolean {
|
||||||
}
|
return frontendKind == FrontendKinds.FIR && languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun TestModule.irGenerationExtensions(testServices: TestServices): Collection<IrGenerationExtension> {
|
||||||
|
return IrGenerationExtension.getInstances(testServices.compilerConfigurationProvider.getProject(this))
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-2
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.fir.backend.jvm.Fir2IrJvmSpecialAnnotationSymbolProv
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
|
import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
|
||||||
|
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
|
||||||
import org.jetbrains.kotlin.fir.serialization.FirKLibSerializerExtension
|
import org.jetbrains.kotlin.fir.serialization.FirKLibSerializerExtension
|
||||||
import org.jetbrains.kotlin.fir.serialization.serializeSingleFirFile
|
import org.jetbrains.kotlin.fir.serialization.serializeSingleFirFile
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
@@ -41,6 +42,8 @@ import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
|
|||||||
import org.jetbrains.kotlin.library.unresolvedDependencies
|
import org.jetbrains.kotlin.library.unresolvedDependencies
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.irGenerationExtensions
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.useIrActualizer
|
||||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
||||||
import org.jetbrains.kotlin.test.model.BackendKinds
|
import org.jetbrains.kotlin.test.model.BackendKinds
|
||||||
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
||||||
@@ -120,7 +123,7 @@ class Fir2IrJsResultsConverter(
|
|||||||
|
|
||||||
var actualizedExpectDeclarations: Set<FirDeclaration>? = null
|
var actualizedExpectDeclarations: Set<FirDeclaration>? = null
|
||||||
|
|
||||||
return IrBackendInput.JsIrBackendInput(
|
val result = IrBackendInput.JsIrBackendInput(
|
||||||
mainIrPart,
|
mainIrPart,
|
||||||
dependentIrParts,
|
dependentIrParts,
|
||||||
mainPluginContext,
|
mainPluginContext,
|
||||||
@@ -152,6 +155,15 @@ class Fir2IrJsResultsConverter(
|
|||||||
configuration.languageVersionSettings,
|
configuration.languageVersionSettings,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!module.useIrActualizer()) {
|
||||||
|
result.irPluginContext.applyIrGenerationExtensions(
|
||||||
|
result.irModuleFragment,
|
||||||
|
irGenerationExtensions = module.irGenerationExtensions(testServices)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,7 +197,6 @@ fun AbstractFirAnalyzerFacade.convertToJsIr(
|
|||||||
irMangler, IrFactoryImpl,
|
irMangler, IrFactoryImpl,
|
||||||
Fir2IrVisibilityConverter.Default,
|
Fir2IrVisibilityConverter.Default,
|
||||||
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation
|
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation
|
||||||
irGeneratorExtensions,
|
|
||||||
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
initializedIrBuiltIns = irBuiltIns
|
initializedIrBuiltIns = irBuiltIns
|
||||||
|
|||||||
+13
-1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
|||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||||
|
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
|
||||||
import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir
|
import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir
|
||||||
import org.jetbrains.kotlin.fir.psi
|
import org.jetbrains.kotlin.fir.psi
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||||
@@ -29,6 +30,8 @@ import org.jetbrains.kotlin.psi.KtFile
|
|||||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.irGenerationExtensions
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.useIrActualizer
|
||||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
||||||
import org.jetbrains.kotlin.test.model.BackendKinds
|
import org.jetbrains.kotlin.test.model.BackendKinds
|
||||||
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
||||||
@@ -126,7 +129,7 @@ class Fir2IrJvmResultsConverter(
|
|||||||
FirJvmBackendClassResolver(mainModuleComponents)
|
FirJvmBackendClassResolver(mainModuleComponents)
|
||||||
).build()
|
).build()
|
||||||
|
|
||||||
return IrBackendInput.JvmIrBackendInput(
|
val result = IrBackendInput.JvmIrBackendInput(
|
||||||
generationState,
|
generationState,
|
||||||
codegenFactory,
|
codegenFactory,
|
||||||
backendInput,
|
backendInput,
|
||||||
@@ -136,5 +139,14 @@ class Fir2IrJvmResultsConverter(
|
|||||||
irMangler = irMangler,
|
irMangler = irMangler,
|
||||||
firMangler = commonMemberStorage.firSignatureComposer.mangler,
|
firMangler = commonMemberStorage.firSignatureComposer.mangler,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (!module.useIrActualizer()) {
|
||||||
|
result.irPluginContext.applyIrGenerationExtensions(
|
||||||
|
backendInput.irModuleFragment,
|
||||||
|
irGenerationExtensions = module.irGenerationExtensions(testServices)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -185,7 +185,6 @@ fun AbstractFirAnalyzerFacade.convertToWasmIr(
|
|||||||
irMangler, IrFactoryImpl,
|
irMangler, IrFactoryImpl,
|
||||||
Fir2IrVisibilityConverter.Default,
|
Fir2IrVisibilityConverter.Default,
|
||||||
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation
|
Fir2IrJvmSpecialAnnotationSymbolProvider(), // TODO: replace with appropriate (probably empty) implementation
|
||||||
irGeneratorExtensions,
|
|
||||||
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
initializedIrBuiltIns = irBuiltIns
|
initializedIrBuiltIns = irBuiltIns
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ class FirAnalyzerFacade(
|
|||||||
JvmIrMangler, IrFactoryImpl,
|
JvmIrMangler, IrFactoryImpl,
|
||||||
FirJvmVisibilityConverter,
|
FirJvmVisibilityConverter,
|
||||||
Fir2IrJvmSpecialAnnotationSymbolProvider(),
|
Fir2IrJvmSpecialAnnotationSymbolProvider(),
|
||||||
irGeneratorExtensions,
|
|
||||||
kotlinBuiltIns = DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
kotlinBuiltIns = DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||||
commonMemberStorage = commonMemberStorage,
|
commonMemberStorage = commonMemberStorage,
|
||||||
initializedIrBuiltIns = irBuiltIns
|
initializedIrBuiltIns = irBuiltIns
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.config.LanguageFeature
|
|||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||||
|
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.ir.backend.js.JsFactories
|
import org.jetbrains.kotlin.ir.backend.js.JsFactories
|
||||||
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
|
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
|
||||||
@@ -24,6 +25,7 @@ import org.jetbrains.kotlin.library.KotlinAbiVersion
|
|||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendFacade
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendFacade
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.irGenerationExtensions
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ModuleDescriptorProvider
|
import org.jetbrains.kotlin.test.frontend.classic.ModuleDescriptorProvider
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.moduleDescriptorProvider
|
import org.jetbrains.kotlin.test.frontend.classic.moduleDescriptorProvider
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.getAllJsDependenciesPaths
|
import org.jetbrains.kotlin.test.frontend.fir.getAllJsDependenciesPaths
|
||||||
@@ -74,7 +76,12 @@ class FirJsKlibBackendFacade(
|
|||||||
diagnosticReporter,
|
diagnosticReporter,
|
||||||
IrTypeSystemContextImpl(inputArtifact.irModuleFragment.irBuiltins),
|
IrTypeSystemContextImpl(inputArtifact.irModuleFragment.irBuiltins),
|
||||||
configuration.languageVersionSettings
|
configuration.languageVersionSettings
|
||||||
)
|
).also {
|
||||||
|
inputArtifact.irPluginContext.applyIrGenerationExtensions(
|
||||||
|
inputArtifact.irModuleFragment,
|
||||||
|
irGenerationExtensions = module.irGenerationExtensions(testServices)
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
-1
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// LANGUAGE: +MultiPlatformProjects
|
// LANGUAGE: +MultiPlatformProjects
|
||||||
// ISSUE: KT-56173
|
// ISSUE: KT-56173
|
||||||
|
|
||||||
|
|||||||
+9
-2
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.config.LanguageFeature
|
|||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||||
|
import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.ir.backend.js.JsFactories
|
import org.jetbrains.kotlin.ir.backend.js.JsFactories
|
||||||
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
|
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
|
||||||
@@ -22,6 +23,7 @@ import org.jetbrains.kotlin.library.KotlinAbiVersion
|
|||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendFacade
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendFacade
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.irGenerationExtensions
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ModuleDescriptorProvider
|
import org.jetbrains.kotlin.test.frontend.classic.ModuleDescriptorProvider
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.moduleDescriptorProvider
|
import org.jetbrains.kotlin.test.frontend.classic.moduleDescriptorProvider
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.getAllWasmDependenciesPaths
|
import org.jetbrains.kotlin.test.frontend.fir.getAllWasmDependenciesPaths
|
||||||
@@ -71,7 +73,12 @@ class FirWasmKlibBackendFacade(
|
|||||||
diagnosticReporter,
|
diagnosticReporter,
|
||||||
IrTypeSystemContextImpl(inputArtifact.irModuleFragment.irBuiltins),
|
IrTypeSystemContextImpl(inputArtifact.irModuleFragment.irBuiltins),
|
||||||
configuration.languageVersionSettings
|
configuration.languageVersionSettings
|
||||||
)
|
).also {
|
||||||
|
inputArtifact.irPluginContext.applyIrGenerationExtensions(
|
||||||
|
inputArtifact.irModuleFragment,
|
||||||
|
irGenerationExtensions = module.irGenerationExtensions(testServices)
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
@@ -120,4 +127,4 @@ class FirWasmKlibBackendFacade(
|
|||||||
|
|
||||||
return BinaryArtifacts.KLib(File(outputFile))
|
return BinaryArtifacts.KLib(File(outputFile))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user