From e7a10057f2c9b72efa869360d701f6886cd500da Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 5 Jul 2023 17:44:46 +0300 Subject: [PATCH] [Test] Use special test facade for IR actualization and IR plugins in all codegen configurations Previously application of plugins was part of fir2ir conversion and ir actualization was the responsibility of each specific IR backend facade. Now (after moving IR extensions after IR actualization) those actions are extracted into separate facade for two purposes: 1. Avoid code duplication in backend facades 2. Step with this facade goes exactly after fir2ir conversion before irHandlersStep, which allows IR handlers to observe IR which was actualized and modified by extensions, which is quite useful ^KT-56173 --- ...ade.kt => IrActualizerAndPluginsFacade.kt} | 21 +++++++----- .../kotlin/test/backend/ir/IrBackendInput.kt | 11 +++++++ .../test/backend/ir/JvmIrBackendFacade.kt | 33 +++---------------- .../frontend/fir/Fir2IrJsResultsConverter.kt | 9 ----- .../frontend/fir/Fir2IrJvmResultsConverter.kt | 9 ----- .../test/runners/AbstractFirDiagnosticTest.kt | 4 +-- .../codegen/AbstractFirBlackBoxCodegenTest.kt | 6 ++++ .../codegen/BaseCodegenConfiguration.kt | 9 +++++ .../test/converters/FirJsKlibBackendFacade.kt | 30 +---------------- .../js/test/converters/JsKlibBackendFacade.kt | 6 ++-- .../ir/AbstractJsBlackBoxCodegenTestBase.kt | 2 ++ .../AbstractWasmBlackBoxCodegenTestBase.kt | 4 +-- .../converters/FirWasmKlibBackendFacade.kt | 30 +---------------- 13 files changed, 53 insertions(+), 121 deletions(-) rename compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/{ActualizerOnlyFacade.kt => IrActualizerAndPluginsFacade.kt} (70%) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/ActualizerOnlyFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrActualizerAndPluginsFacade.kt similarity index 70% rename from compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/ActualizerOnlyFacade.kt rename to compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrActualizerAndPluginsFacade.kt index 0a53d11b7ab..8378c690b41 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/ActualizerOnlyFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrActualizerAndPluginsFacade.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.test.backend.ir 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.config.LanguageFeature import org.jetbrains.kotlin.config.languageVersionSettings @@ -16,33 +17,35 @@ import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.compilerConfigurationProvider -class ActualizerOnlyFacade( +class IrActualizerAndPluginsFacade( val testServices: TestServices, ) : AbstractTestFacade() { override fun transform(module: TestModule, inputArtifact: IrBackendInput): IrBackendInput { - if (module.useIrActualizer()) { + if (module.frontendKind != FrontendKinds.FIR) return inputArtifact + if (module.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)) { val builtins = inputArtifact.irModuleFragment.irBuiltins val typeSystemContext = when (module.targetPlatform.isJvm()) { true -> JvmIrTypeSystemContext(builtins) false -> IrTypeSystemContextImpl(builtins) } - IrActualizer.actualize( + val result = IrActualizer.actualize( inputArtifact.irModuleFragment, inputArtifact.dependentIrModuleFragments, inputArtifact.diagnosticReporter, typeSystemContext, testServices.compilerConfigurationProvider.getCompilerConfiguration(module).languageVersionSettings ) - inputArtifact.irPluginContext.applyIrGenerationExtensions( - inputArtifact.irModuleFragment, - irGenerationExtensions = module.irGenerationExtensions(testServices) - ) + inputArtifact.irActualizerResult = result } + inputArtifact.irPluginContext.applyIrGenerationExtensions( + inputArtifact.irModuleFragment, + irGenerationExtensions = module.irGenerationExtensions(testServices) + ) return inputArtifact } - private fun TestModule.useIrActualizer(): Boolean { - return frontendKind == FrontendKinds.FIR && languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects) + private fun TestModule.irGenerationExtensions(testServices: TestServices): Collection { + return IrGenerationExtension.getInstances(testServices.compilerConfigurationProvider.getProject(this)) } override val inputKind: TestArtifactKind = BackendKinds.IrBackend diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt index 8640b825d67..d9860b5a02a 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt @@ -67,6 +67,14 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput() { */ abstract val firMangler: FirMangler? + /** + * Results of actualization, came from IrActulizer + * + * @see org.jetbrains.kotlin.backend.common.actualizer + * @see org.jetbrains.kotlin.test.backend.ir.IrActualizerAndPluginsFacade + */ + abstract var irActualizerResult: IrActualizedResult? + abstract val diagnosticReporter: BaseDiagnosticsCollector class JsIrBackendInput( @@ -81,6 +89,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput() { override val descriptorMangler: KotlinMangler.DescriptorMangler, override val irMangler: KotlinMangler.IrMangler, override val firMangler: FirMangler?, + override var irActualizerResult: IrActualizedResult? = null, val serializeSingleFile: (KtSourceFile, IrActualizedResult?) -> ProtoBuf.PackageFragment, ) : IrBackendInput() @@ -96,6 +105,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput() { override val descriptorMangler: KotlinMangler.DescriptorMangler, override val irMangler: KotlinMangler.IrMangler, override val firMangler: FirMangler?, + override var irActualizerResult: IrActualizedResult? = null, val serializeSingleFile: (KtSourceFile, IrActualizedResult?) -> ProtoBuf.PackageFragment, ) : IrBackendInput() @@ -108,6 +118,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput() { override val descriptorMangler: KotlinMangler.DescriptorMangler, override val irMangler: KotlinMangler.IrMangler, override val firMangler: FirMangler?, + override var irActualizerResult: IrActualizedResult? = null, ) : IrBackendInput() { override val irModuleFragment: IrModuleFragment get() = backendInput.irModuleFragment diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/JvmIrBackendFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/JvmIrBackendFacade.kt index 8a4acadc5df..a81e79e5334 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/JvmIrBackendFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/JvmIrBackendFacade.kt @@ -7,21 +7,19 @@ package org.jetbrains.kotlin.test.backend.ir import org.jetbrains.kotlin.KtPsiSourceFile import org.jetbrains.kotlin.backend.common.BackendException -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.MultifileFacadeFileEntry import org.jetbrains.kotlin.backend.jvm.lower.getFileClassInfoFromIrFile -import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil -import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions import org.jetbrains.kotlin.ir.PsiIrFileEntry import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.util.NaiveSourceBasedFileEntryImpl import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.backend.classic.JavaCompilerFacade import org.jetbrains.kotlin.test.directives.CodegenTestDirectives -import org.jetbrains.kotlin.test.model.* +import org.jetbrains.kotlin.test.model.ArtifactKinds +import org.jetbrains.kotlin.test.model.BinaryArtifacts +import org.jetbrains.kotlin.test.model.SourceFileInfo +import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.compilerConfigurationProvider @@ -37,21 +35,6 @@ class JvmIrBackendFacade( require(inputArtifact is IrBackendInput.JvmIrBackendInput) { "JvmIrBackendFacade expects IrBackendInput.JvmIrBackendInput as input" } - - if (module.useIrActualizer()) { - IrActualizer.actualize( - inputArtifact.irModuleFragment, - inputArtifact.dependentIrModuleFragments, - inputArtifact.state.diagnosticReporter, - JvmIrTypeSystemContext(inputArtifact.irModuleFragment.irBuiltins), - inputArtifact.state.languageVersionSettings - ) - inputArtifact.irPluginContext.applyIrGenerationExtensions( - inputArtifact.irModuleFragment, - module.irGenerationExtensions(testServices) - ) - } - val state = inputArtifact.state try { inputArtifact.codegenFactory.generateModule(state, inputArtifact.backendInput) @@ -97,11 +80,3 @@ class JvmIrBackendFacade( ) } } - -internal fun TestModule.useIrActualizer(): Boolean { - return frontendKind == FrontendKinds.FIR && languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects) -} - -fun TestModule.irGenerationExtensions(testServices: TestServices): Collection { - return IrGenerationExtension.getInstances(testServices.compilerConfigurationProvider.getProject(this)) -} diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt index 3e10cf07291..7ab09071b0c 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt @@ -42,8 +42,6 @@ import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary import org.jetbrains.kotlin.library.unresolvedDependencies import org.jetbrains.kotlin.storage.LockBasedStorageManager 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.model.BackendKinds import org.jetbrains.kotlin.test.model.Frontend2BackendConverter @@ -156,13 +154,6 @@ class Fir2IrJsResultsConverter( ) } - if (!module.useIrActualizer()) { - result.irPluginContext.applyIrGenerationExtensions( - result.irModuleFragment, - irGenerationExtensions = module.irGenerationExtensions(testServices) - ) - } - return result } } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt index cecf02a7328..dfba0c89484 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt @@ -30,8 +30,6 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.CompilerEnvironment import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory 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.model.BackendKinds import org.jetbrains.kotlin.test.model.Frontend2BackendConverter @@ -140,13 +138,6 @@ class Fir2IrJvmResultsConverter( firMangler = commonMemberStorage.firSignatureComposer.mangler, ) - if (!module.useIrActualizer()) { - result.irPluginContext.applyIrGenerationExtensions( - backendInput.irModuleFragment, - irGenerationExtensions = module.irGenerationExtensions(testServices) - ) - } - return result } } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt index 08d2b238beb..c4fa6c1b8d2 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.test.* -import org.jetbrains.kotlin.test.backend.ir.ActualizerOnlyFacade +import org.jetbrains.kotlin.test.backend.ir.IrActualizerAndPluginsFacade import org.jetbrains.kotlin.test.backend.ir.IrDiagnosticsHandler import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.configureFirHandlersStep @@ -99,7 +99,7 @@ abstract class AbstractFirWithActualizerDiagnosticsTest(val parser: FirParser) : baseFirDiagnosticTestConfiguration() facadeStep(::Fir2IrResultsConverter) - facadeStep(::ActualizerOnlyFacade) + facadeStep(::IrActualizerAndPluginsFacade) irHandlersStep { useHandlers( ::IrDiagnosticsHandler diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractFirBlackBoxCodegenTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractFirBlackBoxCodegenTest.kt index 3abf50074b8..47d4c4794f7 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractFirBlackBoxCodegenTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractFirBlackBoxCodegenTest.kt @@ -14,6 +14,8 @@ import org.jetbrains.kotlin.test.builders.configureFirHandlersStep import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB import org.jetbrains.kotlin.test.FirParser +import org.jetbrains.kotlin.test.backend.ir.IrDiagnosticsHandler +import org.jetbrains.kotlin.test.builders.configureIrHandlersStep import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives import org.jetbrains.kotlin.test.directives.configureFirParser import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter @@ -65,6 +67,10 @@ abstract class AbstractFirBlackBoxCodegenTestBase( ) } + configureIrHandlersStep { + useHandlers(::IrDiagnosticsHandler) + } + useAfterAnalysisCheckers( ::FirMetaInfoDiffSuppressor ) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt index efdfa107b7a..143aa01db1b 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt @@ -11,7 +11,9 @@ import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.HandlersStepBuilder import org.jetbrains.kotlin.test.TestJdkKind import org.jetbrains.kotlin.test.backend.handlers.* +import org.jetbrains.kotlin.test.backend.ir.IrActualizerAndPluginsFacade import org.jetbrains.kotlin.test.backend.ir.IrBackendInput +import org.jetbrains.kotlin.test.backend.ir.IrDiagnosticsHandler import org.jetbrains.kotlin.test.builders.* import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_SMAP @@ -39,6 +41,7 @@ fun , B : ResultingArtifact.BackendInput classicFrontendHandlersStep() firHandlersStep() facadeStep(frontendToBackendConverter) + actualizersAndPluginsFacadeStepIfNeeded(targetFrontend) irHandlersStep(init = {}) facadeStep(backendFacade) jvmArtifactsHandlersStep(init = {}) @@ -194,6 +197,12 @@ fun HandlersStepBuilder.inlineHandlers() { ) } +fun TestConfigurationBuilder.actualizersAndPluginsFacadeStepIfNeeded(targetFrontend: FrontendKind<*>) { + if (targetFrontend == FrontendKinds.FIR) { + facadeStep(::IrActualizerAndPluginsFacade) + } +} + fun TestConfigurationBuilder.configureModernJavaTest(jdkKind: TestJdkKind, jvmTarget: JvmTarget) { defaultDirectives { JvmEnvironmentConfigurationDirectives.JDK_KIND with jdkKind diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/FirJsKlibBackendFacade.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/FirJsKlibBackendFacade.kt index c2227fff918..363032994d2 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/FirJsKlibBackendFacade.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/FirJsKlibBackendFacade.kt @@ -6,18 +6,13 @@ package org.jetbrains.kotlin.js.test.converters import org.jetbrains.kotlin.backend.common.CommonKLibResolver -import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer import org.jetbrains.kotlin.config.CommonConfigurationKeys -import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl -import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory -import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.ir.backend.js.JsFactories import org.jetbrains.kotlin.ir.backend.js.resolverLogger import org.jetbrains.kotlin.ir.backend.js.serializeModuleIntoKlib -import org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl import org.jetbrains.kotlin.ir.util.IrMessageLogger import org.jetbrains.kotlin.js.test.utils.JsIrIncrementalDataProvider import org.jetbrains.kotlin.js.test.utils.jsIrIncrementalDataProvider @@ -25,14 +20,12 @@ import org.jetbrains.kotlin.library.KotlinAbiVersion import org.jetbrains.kotlin.storage.LockBasedStorageManager import org.jetbrains.kotlin.test.backend.ir.IrBackendFacade 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.fir.getAllJsDependenciesPaths import org.jetbrains.kotlin.test.frontend.fir.resolveLibraries import org.jetbrains.kotlin.test.model.ArtifactKinds import org.jetbrains.kotlin.test.model.BinaryArtifacts -import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.* import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator @@ -64,28 +57,7 @@ class FirJsKlibBackendFacade( // TODO: consider avoiding repeated libraries resolution val libraries = resolveLibraries(configuration, getAllJsDependenciesPaths(module, testServices)) - // TODO: find out how to pass diagnostics to the test infra in this case - val diagnosticReporter = DiagnosticReporterFactory.createReporter() - if (firstTimeCompilation) { - val irActualizedResult = - if (module.frontendKind == FrontendKinds.FIR && module.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)) { - IrActualizer.actualize( - inputArtifact.irModuleFragment, - inputArtifact.dependentIrModuleFragments, - diagnosticReporter, - IrTypeSystemContextImpl(inputArtifact.irModuleFragment.irBuiltins), - configuration.languageVersionSettings - ).also { - inputArtifact.irPluginContext.applyIrGenerationExtensions( - inputArtifact.irModuleFragment, - irGenerationExtensions = module.irGenerationExtensions(testServices) - ) - } - } else { - null - } - serializeModuleIntoKlib( configuration[CommonConfigurationKeys.MODULE_NAME]!!, configuration, @@ -102,7 +74,7 @@ class FirJsKlibBackendFacade( abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data jsOutputName = null ) { - inputArtifact.serializeSingleFile(it, irActualizedResult) + inputArtifact.serializeSingleFile(it, inputArtifact.irActualizerResult) } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsKlibBackendFacade.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsKlibBackendFacade.kt index ce14c0c3ea6..831a22bba23 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsKlibBackendFacade.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsKlibBackendFacade.kt @@ -32,7 +32,7 @@ class JsKlibBackendFacade( override val additionalServices: List get() = listOf(service(::JsIrIncrementalDataProvider)) - constructor(testServices: TestServices): this(testServices, firstTimeCompilation = true) + constructor(testServices: TestServices) : this(testServices, firstTimeCompilation = true) override fun shouldRunAnalysis(module: TestModule): Boolean { return module.backendKind == inputKind @@ -63,7 +63,7 @@ class JsKlibBackendFacade( abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data jsOutputName = null ) { - inputArtifact.serializeSingleFile(it, null) + inputArtifact.serializeSingleFile(it, inputArtifact.irActualizerResult) } } @@ -91,4 +91,4 @@ class JsKlibBackendFacade( return BinaryArtifacts.KLib(File(outputFile)) } -} \ No newline at end of file +} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsBlackBoxCodegenTestBase.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsBlackBoxCodegenTestBase.kt index adb10a9429c..882ee1180b9 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsBlackBoxCodegenTestBase.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsBlackBoxCodegenTestBase.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHan import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest +import org.jetbrains.kotlin.test.runners.codegen.actualizersAndPluginsFacadeStepIfNeeded import org.jetbrains.kotlin.test.runners.codegen.commonClassicFrontendHandlersForCodegenTest import org.jetbrains.kotlin.test.services.LibraryProvider import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator @@ -154,6 +155,7 @@ fun < } facadeStep(frontendToBackendConverter) + actualizersAndPluginsFacadeStepIfNeeded(targetFrontend) irHandlersStep() facadeStep(backendFacade) diff --git a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractWasmBlackBoxCodegenTestBase.kt b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractWasmBlackBoxCodegenTestBase.kt index 31f96e054ca..7d1dfecfff6 100644 --- a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractWasmBlackBoxCodegenTestBase.kt +++ b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractWasmBlackBoxCodegenTestBase.kt @@ -19,9 +19,9 @@ import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHan import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest +import org.jetbrains.kotlin.test.runners.codegen.actualizersAndPluginsFacadeStepIfNeeded import org.jetbrains.kotlin.test.runners.codegen.commonClassicFrontendHandlersForCodegenTest import org.jetbrains.kotlin.test.services.LibraryProvider -import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.WasmEnvironmentConfigurator import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider import org.jetbrains.kotlin.wasm.test.handlers.WasmBoxRunner @@ -90,7 +90,7 @@ abstract class AbstractWasmBlackBoxCodegenTestBase