diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/platform/CommonPlatforms.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/platform/CommonPlatforms.kt index b96e48208a1e8..de7f1fbfc39e5 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/platform/CommonPlatforms.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/platform/CommonPlatforms.kt @@ -11,7 +11,8 @@ import org.jetbrains.kotlin.platform.jvm.JvmPlatforms.allJvmPlatforms import org.jetbrains.kotlin.platform.jvm.JvmPlatforms.unspecifiedJvmPlatform import org.jetbrains.kotlin.platform.konan.NativePlatforms.allNativePlatforms import org.jetbrains.kotlin.platform.konan.NativePlatforms.unspecifiedNativePlatform -import org.jetbrains.kotlin.platform.wasm.WasmPlatforms +import org.jetbrains.kotlin.platform.wasm.WasmPlatforms.allWasmPlatforms +import org.jetbrains.kotlin.platform.wasm.WasmPlatforms.unspecifiedWasmPlatform @Suppress("DEPRECATION_ERROR") object CommonPlatforms { @@ -24,7 +25,7 @@ object CommonPlatforms { setOf( unspecifiedJvmPlatform.single(), defaultJsPlatform.single(), - WasmPlatforms.Default.single(), + unspecifiedWasmPlatform.single(), unspecifiedNativePlatform.single() ) ), org.jetbrains.kotlin.analyzer.common.CommonPlatform { @@ -41,7 +42,7 @@ object CommonPlatforms { yieldAll(allJvmPlatforms) yieldAll(allNativePlatforms) yieldAll(allJsPlatforms) - yield(WasmPlatforms.Default) + yieldAll(allWasmPlatforms) // TODO(dsavvinov): extensions points? }.toList() diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/TopDownAnalyzerFacadeForWasm.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/TopDownAnalyzerFacadeForWasm.kt index 3835caf1162ef..bff551750dd71 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/TopDownAnalyzerFacadeForWasm.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/TopDownAnalyzerFacadeForWasm.kt @@ -21,8 +21,6 @@ import org.jetbrains.kotlin.wasm.resolve.WasmJsPlatformAnalyzerServices import org.jetbrains.kotlin.wasm.resolve.WasmWasiPlatformAnalyzerServices abstract class TopDownAnalyzerFacadeForWasm : AbstractTopDownAnalyzerFacadeForWeb() { - override val platform: TargetPlatform = WasmPlatforms.Default - override fun loadIncrementalCacheMetadata( incrementalData: IncrementalDataProvider, moduleContext: ModuleContext, @@ -47,9 +45,13 @@ abstract class TopDownAnalyzerFacadeForWasm : AbstractTopDownAnalyzerFacadeForWe } object TopDownAnalyzerFacadeForWasmJs : TopDownAnalyzerFacadeForWasm() { + override val platform: TargetPlatform = WasmPlatforms.wasmJs + override val analyzerServices: PlatformDependentAnalyzerServices = WasmJsPlatformAnalyzerServices } object TopDownAnalyzerFacadeForWasmWasi : TopDownAnalyzerFacadeForWasm() { + override val platform: TargetPlatform = WasmPlatforms.wasmWasi + override val analyzerServices: PlatformDependentAnalyzerServices = WasmWasiPlatformAnalyzerServices } \ No newline at end of file diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt index f077f1fd35b18..9706d2a234e87 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt @@ -67,13 +67,14 @@ inline fun compileModuleToAnalyzedFir( val mainModuleName = moduleStructure.compilerConfiguration.get(CommonConfigurationKeys.MODULE_NAME)!! val escapedMainModuleName = Name.special("<$mainModuleName>") - val platform = if (useWasmPlatform) WasmPlatforms.Default else JsPlatforms.defaultJsPlatform - val platformAnalyzerServices = if (useWasmPlatform) { + val (platform, platformAnalyzerServices) = if (useWasmPlatform) { when (moduleStructure.compilerConfiguration.get(WasmConfigurationKeys.WASM_TARGET, WasmTarget.JS)) { - WasmTarget.JS -> WasmJsPlatformAnalyzerServices - WasmTarget.WASI -> WasmWasiPlatformAnalyzerServices + WasmTarget.JS -> WasmPlatforms.wasmJs to WasmJsPlatformAnalyzerServices + WasmTarget.WASI -> WasmPlatforms.wasmWasi to WasmWasiPlatformAnalyzerServices } - } else JsPlatformAnalyzerServices + } else { + JsPlatforms.defaultJsPlatform to JsPlatformAnalyzerServices + } val binaryModuleData = BinaryModuleData.initialize(escapedMainModuleName, platform, platformAnalyzerServices) val dependencyList = DependencyListForCliModule.build(binaryModuleData) { diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/FirSessionConstructionUtils.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/FirSessionConstructionUtils.kt index b5d1242686227..753512f6e0029 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/FirSessionConstructionUtils.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/FirSessionConstructionUtils.kt @@ -239,12 +239,12 @@ fun prepareWasmSessions( lookupTracker: LookupTracker?, icData: KlibIcData?, ): List> { - val analyzerServices = when (configuration.get(WasmConfigurationKeys.WASM_TARGET, WasmTarget.JS)) { - WasmTarget.JS -> WasmJsPlatformAnalyzerServices - WasmTarget.WASI -> WasmWasiPlatformAnalyzerServices + val (platform, analyzerServices) = when (configuration.get(WasmConfigurationKeys.WASM_TARGET, WasmTarget.JS)) { + WasmTarget.JS -> WasmPlatforms.wasmJs to WasmJsPlatformAnalyzerServices + WasmTarget.WASI -> WasmPlatforms.wasmWasi to WasmWasiPlatformAnalyzerServices } return prepareSessions( - files, configuration, rootModuleName, WasmPlatforms.Default, analyzerServices, + files, configuration, rootModuleName, platform, analyzerServices, metadataCompilationMode = false, libraryList, isCommonSource, isScript = { false }, fileBelongsToModule, createLibrarySession = { sessionProvider -> diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt index bfbd752040554..0ffbfb631f76c 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt @@ -23,8 +23,7 @@ import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.inline.FunctionInlining import org.jetbrains.kotlin.ir.interpreter.IrInterpreterConfiguration import org.jetbrains.kotlin.ir.util.patchDeclarationParents -import org.jetbrains.kotlin.platform.WasmPlatform -import org.jetbrains.kotlin.platform.toTargetPlatform +import org.jetbrains.kotlin.platform.wasm.WasmPlatforms private fun List>.toCompilerPhase() = reduce { acc, lowering -> acc.then(lowering) } @@ -624,7 +623,7 @@ val constEvaluationPhase = makeIrModulePhase( { context -> val configuration = IrInterpreterConfiguration( printOnlyExceptionMessage = true, - platform = WasmPlatform.toTargetPlatform(), + platform = WasmPlatforms.unspecifiedWasmPlatform, ) ConstEvaluationLowering(context, configuration = configuration) }, diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/TargetPlatformEnum.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/TargetPlatformEnum.kt index 17cdff2f5164a..5d0192240e6ee 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/TargetPlatformEnum.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/TargetPlatformEnum.kt @@ -7,12 +7,12 @@ package org.jetbrains.kotlin.test.directives import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.platform.TargetPlatform -import org.jetbrains.kotlin.platform.WasmPlatform import org.jetbrains.kotlin.platform.js.JsPlatforms import org.jetbrains.kotlin.platform.jvm.JdkPlatform import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.platform.konan.NativePlatformUnspecifiedTarget import org.jetbrains.kotlin.platform.konan.NativePlatforms +import org.jetbrains.kotlin.platform.wasm.WasmPlatformUnspecifiedTarget import org.jetbrains.kotlin.platform.wasm.WasmPlatforms enum class TargetPlatformEnum(val targetPlatform: TargetPlatform) { @@ -21,7 +21,7 @@ enum class TargetPlatformEnum(val targetPlatform: TargetPlatform) { setOf( JdkPlatform(JvmTarget.DEFAULT), JsPlatforms.DefaultSimpleJsPlatform, - WasmPlatform, + WasmPlatformUnspecifiedTarget, NativePlatformUnspecifiedTarget ) ) @@ -32,6 +32,6 @@ enum class TargetPlatformEnum(val targetPlatform: TargetPlatform) { JVM_1_8(JvmPlatforms.jvm8), JS(JsPlatforms.defaultJsPlatform), - Wasm(WasmPlatforms.Default), + Wasm(WasmPlatforms.unspecifiedWasmPlatform), Native(NativePlatforms.unspecifiedNativePlatform) } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt index 8bb7534c62bea..d29e3a67f160f 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.test.services.impl -import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.platform.CommonPlatforms import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.js.JsPlatforms @@ -377,7 +376,7 @@ class ModuleStructureExtractorImpl( nameSuffix == "COMMON" -> CommonPlatforms.defaultCommonPlatform nameSuffix == "JVM" -> JvmPlatforms.unspecifiedJvmPlatform // TODO(dsavvinov): determine JvmTarget precisely nameSuffix == "JS" -> JsPlatforms.defaultJsPlatform - nameSuffix == "WASM" -> WasmPlatforms.Default + nameSuffix == "WASM" -> WasmPlatforms.unspecifiedWasmPlatform nameSuffix == "NATIVE" -> NativePlatforms.unspecifiedNativePlatform nameSuffix.isEmpty() -> null // TODO(dsavvinov): this leads to 'null'-platform in ModuleDescriptor else -> throw IllegalStateException("Can't determine platform by name $nameSuffix") diff --git a/core/compiler.common/src/org/jetbrains/kotlin/platform/WasmPlatform.kt b/core/compiler.common/src/org/jetbrains/kotlin/platform/WasmPlatform.kt index 7ad944671696b..a9c682e79be35 100644 --- a/core/compiler.common/src/org/jetbrains/kotlin/platform/WasmPlatform.kt +++ b/core/compiler.common/src/org/jetbrains/kotlin/platform/WasmPlatform.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.platform -object WasmPlatform : SimplePlatform("Wasm") { +abstract class WasmPlatform : SimplePlatform("Wasm") { override val oldFashionedDescription: String get() = "Wasm " } diff --git a/jps/jps-common/src/org/jetbrains/kotlin/platform/compat/compatConversions.kt b/jps/jps-common/src/org/jetbrains/kotlin/platform/compat/compatConversions.kt index 2ffdbee42d583..816d4040a7438 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/platform/compat/compatConversions.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/platform/compat/compatConversions.kt @@ -10,19 +10,15 @@ package org.jetbrains.kotlin.platform.compat import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.platform.CommonPlatforms import org.jetbrains.kotlin.platform.IdePlatform -import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind -import org.jetbrains.kotlin.platform.impl.JsIdePlatformKind -import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind -import org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind import org.jetbrains.kotlin.platform.JsPlatform import org.jetbrains.kotlin.platform.WasmPlatform -import org.jetbrains.kotlin.platform.impl.WasmIdePlatformKind +import org.jetbrains.kotlin.platform.impl.* import org.jetbrains.kotlin.platform.js.JsPlatforms import org.jetbrains.kotlin.platform.jvm.JdkPlatform import org.jetbrains.kotlin.platform.jvm.JvmPlatform import org.jetbrains.kotlin.platform.jvm.JvmPlatforms -import org.jetbrains.kotlin.platform.konan.NativePlatforms import org.jetbrains.kotlin.platform.konan.NativePlatform +import org.jetbrains.kotlin.platform.konan.NativePlatforms import org.jetbrains.kotlin.platform.wasm.WasmPlatforms typealias OldPlatform = org.jetbrains.kotlin.resolve.TargetPlatform @@ -54,7 +50,7 @@ fun IdePlatform<*, *>.toNewPlatform(): NewPlatform = when (this) { is CommonIdePlatformKind.Platform -> CommonPlatforms.defaultCommonPlatform is JvmIdePlatformKind.Platform -> JvmPlatforms.jvmPlatformByTargetVersion(this.version) is JsIdePlatformKind.Platform -> JsPlatforms.defaultJsPlatform - is WasmIdePlatformKind.Platform -> WasmPlatforms.Default + is WasmIdePlatformKind.Platform -> WasmPlatforms.unspecifiedWasmPlatform is NativeIdePlatformKind.Platform -> NativePlatforms.unspecifiedNativePlatform else -> error("Unknown platform $this") } diff --git a/jps/jps-common/src/org/jetbrains/kotlin/platform/impl/WasmIdePlatformKind.kt b/jps/jps-common/src/org/jetbrains/kotlin/platform/impl/WasmIdePlatformKind.kt index 7b636e757c7b9..613350882bdf2 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/platform/impl/WasmIdePlatformKind.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/platform/impl/WasmIdePlatformKind.kt @@ -12,19 +12,25 @@ import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments import org.jetbrains.kotlin.platform.* import org.jetbrains.kotlin.platform.wasm.WasmPlatforms +import org.jetbrains.kotlin.platform.wasm.WasmTarget object WasmIdePlatformKind : IdePlatformKind() { override fun supportsTargetPlatform(platform: TargetPlatform): Boolean = platform.isWasm() override fun platformByCompilerArguments(arguments: CommonCompilerArguments): TargetPlatform? { - return if (arguments is K2JSCompilerArguments && arguments.wasm) - WasmPlatforms.Default - else - null + return if (arguments is K2JSCompilerArguments && arguments.wasm) { + val wasmTarget = arguments.wasmTarget?.let { WasmTarget.fromName(it) } + wasmTarget?.let { + WasmPlatforms.wasmPlatformByTargetVersion(it) + } + } else null } - val platforms get() = listOf(WasmPlatforms.Default) - override val defaultPlatform get() = WasmPlatforms.Default + val platforms + get() = WasmTarget.values() + .map { target -> WasmPlatforms.wasmPlatformByTargetVersion(target) } + listOf(WasmPlatforms.unspecifiedWasmPlatform) + + override val defaultPlatform get() = WasmPlatforms.unspecifiedWasmPlatform @Deprecated( message = "IdePlatform is deprecated and will be removed soon, please, migrate to org.jetbrains.kotlin.platform.TargetPlatform", diff --git a/wasm/wasm.config/src/org/jetbrains/kotlin/platform/wasm/WasmPlatform.kt b/wasm/wasm.config/src/org/jetbrains/kotlin/platform/wasm/WasmPlatform.kt index 2c25a42a1cb5e..a507e88cb4383 100644 --- a/wasm/wasm.config/src/org/jetbrains/kotlin/platform/wasm/WasmPlatform.kt +++ b/wasm/wasm.config/src/org/jetbrains/kotlin/platform/wasm/WasmPlatform.kt @@ -6,8 +6,41 @@ package org.jetbrains.kotlin.platform.wasm import org.jetbrains.kotlin.platform.TargetPlatform -import org.jetbrains.kotlin.platform.WasmPlatform +import org.jetbrains.kotlin.platform.toTargetPlatform +import org.jetbrains.kotlin.platform.WasmPlatform as CoreWasmPlatform + +abstract class WasmPlatform : CoreWasmPlatform() { + override val oldFashionedDescription: String + get() = "Wasm" +} + +object WasmPlatformUnspecifiedTarget : WasmPlatform() { + override val targetName: String + get() = "general" +} + +class WasmPlatformWithTarget(val target: WasmTarget) : WasmPlatform() { + override val targetName: String + get() = target.name +} object WasmPlatforms { - object Default : TargetPlatform(setOf(WasmPlatform)) -} \ No newline at end of file + private val platforms: Map = + WasmTarget.entries.associateWith { WasmPlatformWithTarget(it).toTargetPlatform() } + + @Suppress("DEPRECATION_ERROR") + val unspecifiedWasmPlatform: TargetPlatform + get() = Default + + val wasmJs = platforms[WasmTarget.JS]!! + val wasmWasi = platforms[WasmTarget.WASI]!! + + fun wasmPlatformByTargetVersion(targetVersion: WasmTarget): TargetPlatform = + platforms[targetVersion]!! + + val allWasmPlatforms: List = listOf(unspecifiedWasmPlatform) + platforms.values + + object Default : TargetPlatform(setOf(WasmPlatformUnspecifiedTarget)) +} + +fun TargetPlatform?.isWasm(): Boolean = this?.singleOrNull() is WasmPlatform \ No newline at end of file diff --git a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractFirWasmTest.kt b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractFirWasmTest.kt index aedb04f6ce810..e1c98f5517424 100644 --- a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractFirWasmTest.kt +++ b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractFirWasmTest.kt @@ -5,17 +5,27 @@ package org.jetbrains.kotlin.wasm.test +import org.jetbrains.kotlin.platform.TargetPlatform +import org.jetbrains.kotlin.platform.wasm.WasmPlatforms import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.FirParser import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.ir.IrBackendInput -import org.jetbrains.kotlin.test.builders.* +import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder +import org.jetbrains.kotlin.test.builders.configureFirHandlersStep +import org.jetbrains.kotlin.test.builders.firHandlersStep import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives import org.jetbrains.kotlin.test.directives.WasmEnvironmentConfigurationDirectives -import org.jetbrains.kotlin.test.frontend.fir.* -import org.jetbrains.kotlin.test.frontend.fir.handlers.* +import org.jetbrains.kotlin.test.frontend.fir.Fir2IrWasmResultsConverter +import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade +import org.jetbrains.kotlin.test.frontend.fir.FirMetaInfoDiffSuppressor +import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact +import org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgConsistencyHandler +import org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgDumpHandler +import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDumpHandler +import org.jetbrains.kotlin.test.frontend.fir.handlers.FirResolvedTypesVerifier import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.codegen.commonFirHandlersForCodegenTest import org.jetbrains.kotlin.test.services.AdditionalSourceProvider @@ -29,10 +39,11 @@ import org.jetbrains.kotlin.wasm.test.handlers.WasmBoxRunner import org.jetbrains.kotlin.wasm.test.handlers.WasmDebugRunner abstract class AbstractFirWasmTest( + targetPlatform: TargetPlatform, pathToTestDir: String, testGroupOutputDirPrefix: String, ) : AbstractWasmBlackBoxCodegenTestBase( - FrontendKinds.FIR, TargetBackend.WASM, pathToTestDir, testGroupOutputDirPrefix + FrontendKinds.FIR, TargetBackend.WASM, targetPlatform, pathToTestDir, testGroupOutputDirPrefix ) { override val frontendFacade: Constructor> get() = ::FirFrontendFacade @@ -70,7 +81,7 @@ abstract class AbstractFirWasmTest( open class AbstractFirWasmJsTest( pathToTestDir: String, testGroupOutputDirPrefix: String, -) : AbstractFirWasmTest(pathToTestDir, testGroupOutputDirPrefix) { +) : AbstractFirWasmTest(WasmPlatforms.wasmJs, pathToTestDir, testGroupOutputDirPrefix) { override val wasmBoxTestRunner: Constructor> get() = ::WasmBoxRunner @@ -128,7 +139,7 @@ open class AbstractFirWasmJsSteppingTest : AbstractFirWasmJsTest( open class AbstractFirWasmWasiTest( pathToTestDir: String, testGroupOutputDirPrefix: String, -) : AbstractFirWasmTest(pathToTestDir, testGroupOutputDirPrefix) { +) : AbstractFirWasmTest(WasmPlatforms.wasmWasi, pathToTestDir, testGroupOutputDirPrefix) { override val wasmBoxTestRunner: Constructor> get() = ::WasiBoxRunner diff --git a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmTest.kt b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmTest.kt index 4feb9e6c0a4e0..4169d10bb8139 100644 --- a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmTest.kt +++ b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmTest.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.wasm.test +import org.jetbrains.kotlin.platform.wasm.WasmPlatforms import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.jetbrains.kotlin.test.builders.wasmArtifactsHandlersStep import org.jetbrains.kotlin.test.directives.WasmEnvironmentConfigurationDirectives import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade @@ -27,7 +27,7 @@ abstract class AbstractK1WasmTest( pathToTestDir: String, testGroupOutputDirPrefix: String, ) : AbstractWasmBlackBoxCodegenTestBase( - FrontendKinds.ClassicFrontend, TargetBackend.WASM, pathToTestDir, testGroupOutputDirPrefix + FrontendKinds.ClassicFrontend, TargetBackend.WASM, WasmPlatforms.wasmJs, pathToTestDir, testGroupOutputDirPrefix ) { override val frontendFacade: Constructor> get() = ::ClassicFrontendFacade diff --git a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmWasiTest.kt b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmWasiTest.kt index c22cf0e3b8c8f..e6616d9e1bed2 100644 --- a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmWasiTest.kt +++ b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/AbstractK1WasmWasiTest.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.wasm.test +import org.jetbrains.kotlin.platform.wasm.WasmPlatforms import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.ir.IrBackendInput -import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact @@ -24,7 +24,7 @@ abstract class AbstractK1WasmWasiTest( pathToTestDir: String, testGroupOutputDirPrefix: String, ) : AbstractWasmBlackBoxCodegenTestBase( - FrontendKinds.ClassicFrontend, TargetBackend.WASM, pathToTestDir, testGroupOutputDirPrefix + FrontendKinds.ClassicFrontend, TargetBackend.WASM, WasmPlatforms.wasmWasi, pathToTestDir, testGroupOutputDirPrefix ) { override val frontendFacade: Constructor> get() = ::ClassicFrontendFacade 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 4b987fa9f1a3c..fecadab9206a5 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 @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.wasm.test -import org.jetbrains.kotlin.platform.wasm.WasmPlatforms +import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.wasm.test.handlers.WasmDtsHandler abstract class AbstractWasmBlackBoxCodegenTestBase, I : ResultingArtifact.BackendInput, A : ResultingArtifact.Binary>( private val targetFrontend: FrontendKind, targetBackend: TargetBackend, + private val targetPlatform: TargetPlatform, private val pathToTestDir: String, private val testGroupOutputDirPrefix: String, ) : AbstractKotlinCompilerWithTargetBackendTest(targetBackend) { @@ -44,7 +45,7 @@ abstract class AbstractWasmBlackBoxCodegenTestBase, ) : AbstractKotlinCompilerTest() { override fun TestConfigurationBuilder.configuration() { globalDefaults { frontend = FrontendKinds.FIR - targetPlatform = WasmPlatforms.Default + targetPlatform = this@AbstractFirWasmDiagnosticTestBase.targetPlatform dependencyKind = DependencyKind.Source } @@ -74,5 +76,14 @@ abstract class AbstractFirWasmDiagnosticTestBase( } } -abstract class AbstractDiagnosticsFirWasmTest : AbstractFirWasmDiagnosticTestBase(FirParser.Psi, ::WasmEnvironmentConfiguratorJs) -abstract class AbstractDiagnosticsFirWasmWasiTest : AbstractFirWasmDiagnosticTestBase(FirParser.Psi, ::WasmEnvironmentConfiguratorWasi) +abstract class AbstractDiagnosticsFirWasmTest : AbstractFirWasmDiagnosticTestBase( + FirParser.Psi, + WasmPlatforms.wasmJs, + ::WasmEnvironmentConfiguratorJs +) + +abstract class AbstractDiagnosticsFirWasmWasiTest : AbstractFirWasmDiagnosticTestBase( + FirParser.Psi, + WasmPlatforms.wasmWasi, + ::WasmEnvironmentConfiguratorWasi +) diff --git a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/diagnostics/AbstractDiagnosticsWasmTest.kt b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/diagnostics/AbstractDiagnosticsWasmTest.kt index 5a665c2612be0..27e8b75727829 100644 --- a/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/diagnostics/AbstractDiagnosticsWasmTest.kt +++ b/wasm/wasm.tests/test/org/jetbrains/kotlin/wasm/test/diagnostics/AbstractDiagnosticsWasmTest.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.wasm.test.diagnostics +import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.wasm.WasmPlatforms import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder @@ -26,12 +27,13 @@ import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsS import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider abstract class AbstractDiagnosticsWasmTestBase( + private val targetPlatform: TargetPlatform, private val wasmEnvironmentConfigurator: Constructor, ) : AbstractKotlinCompilerTest() { override fun TestConfigurationBuilder.configuration() { globalDefaults { frontend = FrontendKinds.ClassicFrontend - targetPlatform = WasmPlatforms.Default + targetPlatform = this@AbstractDiagnosticsWasmTestBase.targetPlatform dependencyKind = DependencyKind.Source } @@ -68,5 +70,12 @@ abstract class AbstractDiagnosticsWasmTestBase( } } -abstract class AbstractDiagnosticsWasmTest : AbstractDiagnosticsWasmTestBase(::WasmEnvironmentConfiguratorJs) -abstract class AbstractDiagnosticsWasmWasiTest : AbstractDiagnosticsWasmTestBase(::WasmEnvironmentConfiguratorWasi) +abstract class AbstractDiagnosticsWasmTest : AbstractDiagnosticsWasmTestBase( + WasmPlatforms.wasmJs, + ::WasmEnvironmentConfiguratorJs +) + +abstract class AbstractDiagnosticsWasmWasiTest : AbstractDiagnosticsWasmTestBase( + WasmPlatforms.wasmWasi, + ::WasmEnvironmentConfiguratorWasi +)