[FIR] Introduce the proper Fir2IrResultsConverter
Sometimes when running MPP tests we may observe js-specific modules running with the jvm-specific fir2ir converter (probably because the name didn't contain the JVM affix).
This commit is contained in:
committed by
Space Team
parent
e1158b1cb2
commit
e3d313dd02
+1
-4
@@ -1,9 +1,6 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
// SKIP_KLIB_TEST
|
// SKIP_KLIB_TEST
|
||||||
// IGNORE_BACKEND_K1: JS_IR
|
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
|
||||||
// IGNORE_BACKEND_K1: JS_IR_ES6
|
|
||||||
// IGNORE_BACKEND_K2: JS_IR
|
|
||||||
// IGNORE_BACKEND_K2: JS_IR_ES6
|
|
||||||
// STATUS: This should not work in JS, Cloneable is JVM-specific API
|
// STATUS: This should not work in JS, Cloneable is JVM-specific API
|
||||||
|
|
||||||
class A : Cloneable
|
class A : Cloneable
|
||||||
|
|||||||
+142
@@ -0,0 +1,142 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.test.frontend.fir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
||||||
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
||||||
|
import org.jetbrains.kotlin.codegen.ClassBuilderFactories
|
||||||
|
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||||
|
import org.jetbrains.kotlin.container.get
|
||||||
|
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
||||||
|
import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage
|
||||||
|
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||||
|
import org.jetbrains.kotlin.fir.backend.IrBuiltInsOverFir
|
||||||
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||||
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||||
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
||||||
|
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||||
|
import org.jetbrains.kotlin.fir.psi
|
||||||
|
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmDescriptorMangler
|
||||||
|
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||||
|
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.directives.CodegenTestDirectives
|
||||||
|
import org.jetbrains.kotlin.test.model.BackendKinds
|
||||||
|
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
||||||
|
import org.jetbrains.kotlin.test.model.FrontendKinds
|
||||||
|
import org.jetbrains.kotlin.test.model.TestModule
|
||||||
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
|
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
|
||||||
|
|
||||||
|
class Fir2IrJvmResultsConverter(
|
||||||
|
testServices: TestServices
|
||||||
|
) : Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>(
|
||||||
|
testServices,
|
||||||
|
FrontendKinds.FIR,
|
||||||
|
BackendKinds.IrBackend
|
||||||
|
) {
|
||||||
|
override fun transform(
|
||||||
|
module: TestModule,
|
||||||
|
inputArtifact: FirOutputArtifact
|
||||||
|
): IrBackendInput? {
|
||||||
|
return try {
|
||||||
|
transformInternal(module, inputArtifact)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
if (CodegenTestDirectives.IGNORE_FIR2IR_EXCEPTIONS_IF_FIR_CONTAINS_ERRORS in module.directives && inputArtifact.hasErrors) {
|
||||||
|
null
|
||||||
|
} else {
|
||||||
|
throw e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun transformInternal(
|
||||||
|
module: TestModule,
|
||||||
|
inputArtifact: FirOutputArtifact
|
||||||
|
): IrBackendInput.JvmIrBackendInput {
|
||||||
|
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||||
|
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||||
|
|
||||||
|
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||||
|
|
||||||
|
// Create and initialize the module and its dependencies
|
||||||
|
val project = compilerConfigurationProvider.getProject(module)
|
||||||
|
// TODO: handle fir from light tree
|
||||||
|
val ktFiles = inputArtifact.mainFirFiles.mapNotNull { it.value.psi as KtFile? }
|
||||||
|
val sourceFiles = inputArtifact.mainFirFiles.mapNotNull { it.value.sourceFile }
|
||||||
|
val container = TopDownAnalyzerFacadeForJVM.createContainer(
|
||||||
|
project, ktFiles, NoScopeRecordCliBindingTrace(), configuration,
|
||||||
|
compilerConfigurationProvider.getPackagePartProviderFactory(module),
|
||||||
|
::FileBasedDeclarationProviderFactory, CompilerEnvironment,
|
||||||
|
TopDownAnalyzerFacadeForJVM.newModuleSearchScope(project, ktFiles), emptyList()
|
||||||
|
)
|
||||||
|
|
||||||
|
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG)
|
||||||
|
|
||||||
|
val dependentIrParts = mutableListOf<JvmIrCodegenFactory.JvmIrBackendInput>()
|
||||||
|
lateinit var mainIrPart: JvmIrCodegenFactory.JvmIrBackendInput
|
||||||
|
lateinit var mainModuleComponents: Fir2IrComponents
|
||||||
|
|
||||||
|
val firAnalyzerFacade = inputArtifact.partsForDependsOnModules.last().firAnalyzerFacade as? FirAnalyzerFacade
|
||||||
|
val generateSignatures = firAnalyzerFacade?.fir2IrConfiguration?.linkViaSignatures == true
|
||||||
|
|
||||||
|
val commonMemberStorage = Fir2IrCommonMemberStorage(
|
||||||
|
generateSignatures = generateSignatures,
|
||||||
|
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
|
||||||
|
manglerCreator = { FirJvmKotlinMangler() }
|
||||||
|
)
|
||||||
|
var irBuiltIns: IrBuiltInsOverFir? = null
|
||||||
|
|
||||||
|
for ((index, firOutputPart) in inputArtifact.partsForDependsOnModules.withIndex()) {
|
||||||
|
val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.convertToIr(
|
||||||
|
fir2IrExtensions, commonMemberStorage, irBuiltIns
|
||||||
|
)
|
||||||
|
irBuiltIns = components.irBuiltIns
|
||||||
|
|
||||||
|
val irPart = JvmIrCodegenFactory.JvmIrBackendInput(
|
||||||
|
irModuleFragment,
|
||||||
|
components.symbolTable,
|
||||||
|
phaseConfig,
|
||||||
|
components.irProviders,
|
||||||
|
fir2IrExtensions,
|
||||||
|
FirJvmBackendExtension(components, irActualizedResult = null),
|
||||||
|
pluginContext,
|
||||||
|
notifyCodegenStart = {},
|
||||||
|
)
|
||||||
|
|
||||||
|
if (index < inputArtifact.partsForDependsOnModules.size - 1) {
|
||||||
|
dependentIrParts.add(irPart)
|
||||||
|
} else {
|
||||||
|
mainModuleComponents = components
|
||||||
|
mainIrPart = irPart
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val codegenFactory = JvmIrCodegenFactory(configuration, phaseConfig)
|
||||||
|
val generationState = GenerationState.Builder(
|
||||||
|
project, ClassBuilderFactories.TEST,
|
||||||
|
container.get(), NoScopeRecordCliBindingTrace().bindingContext, configuration
|
||||||
|
).isIrBackend(
|
||||||
|
true
|
||||||
|
).jvmBackendClassResolver(
|
||||||
|
FirJvmBackendClassResolver(mainModuleComponents)
|
||||||
|
).build()
|
||||||
|
|
||||||
|
return IrBackendInput.JvmIrBackendInput(
|
||||||
|
generationState,
|
||||||
|
codegenFactory,
|
||||||
|
dependentIrParts,
|
||||||
|
mainIrPart,
|
||||||
|
sourceFiles
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
+12
-117
@@ -5,37 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.test.frontend.fir
|
package org.jetbrains.kotlin.test.frontend.fir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
import org.jetbrains.kotlin.platform.isCommon
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
import org.jetbrains.kotlin.platform.isJs
|
||||||
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
|
||||||
import org.jetbrains.kotlin.codegen.ClassBuilderFactories
|
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
|
||||||
import org.jetbrains.kotlin.container.get
|
|
||||||
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage
|
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
|
||||||
import org.jetbrains.kotlin.fir.backend.IrBuiltInsOverFir
|
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
|
||||||
import org.jetbrains.kotlin.fir.psi
|
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmDescriptorMangler
|
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
|
||||||
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.IrBackendInput
|
||||||
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
|
||||||
import org.jetbrains.kotlin.test.model.FrontendKinds
|
import org.jetbrains.kotlin.test.model.FrontendKinds
|
||||||
import org.jetbrains.kotlin.test.model.TestModule
|
import org.jetbrains.kotlin.test.model.TestModule
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
|
|
||||||
|
|
||||||
class Fir2IrResultsConverter(
|
class Fir2IrResultsConverter(
|
||||||
testServices: TestServices
|
testServices: TestServices
|
||||||
@@ -44,99 +22,16 @@ class Fir2IrResultsConverter(
|
|||||||
FrontendKinds.FIR,
|
FrontendKinds.FIR,
|
||||||
BackendKinds.IrBackend
|
BackendKinds.IrBackend
|
||||||
) {
|
) {
|
||||||
override fun transform(
|
private val jvmResultsConverter = Fir2IrJvmResultsConverter(testServices)
|
||||||
module: TestModule,
|
private val jsResultsConverter = Fir2IrJsResultsConverter(testServices)
|
||||||
inputArtifact: FirOutputArtifact
|
|
||||||
): IrBackendInput? {
|
override fun transform(module: TestModule, inputArtifact: FirOutputArtifact): IrBackendInput? = when {
|
||||||
return try {
|
module.targetPlatform.isJvm() || module.targetPlatform.isCommon() -> {
|
||||||
transformInternal(module, inputArtifact)
|
jvmResultsConverter.transform(module, inputArtifact)
|
||||||
} catch (e: Throwable) {
|
|
||||||
if (CodegenTestDirectives.IGNORE_FIR2IR_EXCEPTIONS_IF_FIR_CONTAINS_ERRORS in module.directives && inputArtifact.hasErrors) {
|
|
||||||
null
|
|
||||||
} else {
|
|
||||||
throw e
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
module.targetPlatform.isJs() -> {
|
||||||
|
jsResultsConverter.transform(module, inputArtifact)
|
||||||
private fun transformInternal(
|
|
||||||
module: TestModule,
|
|
||||||
inputArtifact: FirOutputArtifact
|
|
||||||
): IrBackendInput.JvmIrBackendInput {
|
|
||||||
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
|
||||||
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
|
|
||||||
|
|
||||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
|
||||||
|
|
||||||
// Create and initialize the module and its dependencies
|
|
||||||
val project = compilerConfigurationProvider.getProject(module)
|
|
||||||
// TODO: handle fir from light tree
|
|
||||||
val ktFiles = inputArtifact.mainFirFiles.mapNotNull { it.value.psi as KtFile? }
|
|
||||||
val sourceFiles = inputArtifact.mainFirFiles.mapNotNull { it.value.sourceFile }
|
|
||||||
val container = TopDownAnalyzerFacadeForJVM.createContainer(
|
|
||||||
project, ktFiles, NoScopeRecordCliBindingTrace(), configuration,
|
|
||||||
compilerConfigurationProvider.getPackagePartProviderFactory(module),
|
|
||||||
::FileBasedDeclarationProviderFactory, CompilerEnvironment,
|
|
||||||
TopDownAnalyzerFacadeForJVM.newModuleSearchScope(project, ktFiles), emptyList()
|
|
||||||
)
|
|
||||||
|
|
||||||
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG)
|
|
||||||
|
|
||||||
val dependentIrParts = mutableListOf<JvmIrCodegenFactory.JvmIrBackendInput>()
|
|
||||||
lateinit var mainIrPart: JvmIrCodegenFactory.JvmIrBackendInput
|
|
||||||
lateinit var mainModuleComponents: Fir2IrComponents
|
|
||||||
|
|
||||||
val firAnalyzerFacade = inputArtifact.partsForDependsOnModules.last().firAnalyzerFacade as? FirAnalyzerFacade
|
|
||||||
val generateSignatures = firAnalyzerFacade?.fir2IrConfiguration?.linkViaSignatures == true
|
|
||||||
|
|
||||||
val commonMemberStorage = Fir2IrCommonMemberStorage(
|
|
||||||
generateSignatures = generateSignatures,
|
|
||||||
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
|
|
||||||
manglerCreator = { FirJvmKotlinMangler() }
|
|
||||||
)
|
|
||||||
var irBuiltIns: IrBuiltInsOverFir? = null
|
|
||||||
|
|
||||||
for ((index, firOutputPart) in inputArtifact.partsForDependsOnModules.withIndex()) {
|
|
||||||
val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.convertToIr(
|
|
||||||
fir2IrExtensions, commonMemberStorage, irBuiltIns
|
|
||||||
)
|
|
||||||
irBuiltIns = components.irBuiltIns
|
|
||||||
|
|
||||||
val irPart = JvmIrCodegenFactory.JvmIrBackendInput(
|
|
||||||
irModuleFragment,
|
|
||||||
components.symbolTable,
|
|
||||||
phaseConfig,
|
|
||||||
components.irProviders,
|
|
||||||
fir2IrExtensions,
|
|
||||||
FirJvmBackendExtension(components, irActualizedResult = null),
|
|
||||||
pluginContext,
|
|
||||||
notifyCodegenStart = {},
|
|
||||||
)
|
|
||||||
|
|
||||||
if (index < inputArtifact.partsForDependsOnModules.size - 1) {
|
|
||||||
dependentIrParts.add(irPart)
|
|
||||||
} else {
|
|
||||||
mainModuleComponents = components
|
|
||||||
mainIrPart = irPart
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else -> error("Unsupported platform: ${module.targetPlatform}")
|
||||||
val codegenFactory = JvmIrCodegenFactory(configuration, phaseConfig)
|
|
||||||
val generationState = GenerationState.Builder(
|
|
||||||
project, ClassBuilderFactories.TEST,
|
|
||||||
container.get(), NoScopeRecordCliBindingTrace().bindingContext, configuration
|
|
||||||
).isIrBackend(
|
|
||||||
true
|
|
||||||
).jvmBackendClassResolver(
|
|
||||||
FirJvmBackendClassResolver(mainModuleComponents)
|
|
||||||
).build()
|
|
||||||
|
|
||||||
return IrBackendInput.JvmIrBackendInput(
|
|
||||||
generationState,
|
|
||||||
codegenFactory,
|
|
||||||
dependentIrParts,
|
|
||||||
mainIrPart,
|
|
||||||
sourceFiles
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHan
|
|||||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.DeclarationsDumpHandler
|
import org.jetbrains.kotlin.test.frontend.classic.handlers.DeclarationsDumpHandler
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.FirTestDataConsistencyHandler
|
import org.jetbrains.kotlin.test.frontend.classic.handlers.FirTestDataConsistencyHandler
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.OldNewInferenceMetaInfoProcessor
|
import org.jetbrains.kotlin.test.frontend.classic.handlers.OldNewInferenceMetaInfoProcessor
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
||||||
@@ -161,7 +161,7 @@ abstract class AbstractFirDiagnosticsTestWithJvmIrBackendBase(
|
|||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
override val converter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val converter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
|
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|||||||
+3
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsS
|
|||||||
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
|
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
|
||||||
import org.jetbrains.kotlin.test.FirParser
|
import org.jetbrains.kotlin.test.FirParser
|
||||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
||||||
|
import org.jetbrains.kotlin.test.services.JsLibraryProvider
|
||||||
|
|
||||||
abstract class AbstractFirDiagnosticTestBase(val parser: FirParser) : AbstractKotlinCompilerTest() {
|
abstract class AbstractFirDiagnosticTestBase(val parser: FirParser) : AbstractKotlinCompilerTest() {
|
||||||
override fun TestConfigurationBuilder.configuration() {
|
override fun TestConfigurationBuilder.configuration() {
|
||||||
@@ -71,6 +72,8 @@ abstract class AbstractFirWithActualizerDiagnosticsTest(val parser: FirParser) :
|
|||||||
::IrDiagnosticsHandler
|
::IrDiagnosticsHandler
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useAdditionalService(::JsLibraryProvider)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
|||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
|
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
||||||
@@ -111,7 +111,7 @@ abstract class AbstractFirAsmLikeInstructionListingTestBase(val parser: FirParse
|
|||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
|
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|||||||
+2
-2
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.test.builders.configureJvmArtifactsHandlersStep
|
|||||||
import org.jetbrains.kotlin.test.directives.*
|
import org.jetbrains.kotlin.test.directives.*
|
||||||
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
|
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.*
|
import org.jetbrains.kotlin.test.frontend.classic.*
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
@@ -89,7 +89,7 @@ abstract class AbstractFirBytecodeListingTestBase(val parser: FirParser) :
|
|||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
|
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackend
|
|||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
@@ -92,7 +92,7 @@ open class AbstractFirBytecodeTextTestBase(val parser: FirParser) : AbstractByte
|
|||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
|
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|||||||
+2
-2
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackend
|
|||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
@@ -75,7 +75,7 @@ open class AbstractFirSteppingTestBase(val parser: FirParser) : AbstractStepping
|
|||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
|
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.test.Constructor
|
|||||||
import org.jetbrains.kotlin.test.FirParser
|
import org.jetbrains.kotlin.test.FirParser
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
|
||||||
@@ -26,7 +26,7 @@ abstract class AbstractFirJvmIrTextTest(
|
|||||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
override val converter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val converter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
|
|
||||||
override fun configure(builder: TestConfigurationBuilder) {
|
override fun configure(builder: TestConfigurationBuilder) {
|
||||||
super.configure(builder)
|
super.configure(builder)
|
||||||
|
|||||||
+2
-2
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackend
|
|||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
@@ -78,7 +78,7 @@ open class AbstractFirPsiBytecodeListingTestForAllOpen :
|
|||||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -13,8 +13,6 @@ import org.jetbrains.kotlin.test.Constructor
|
|||||||
import org.jetbrains.kotlin.test.FirParser
|
import org.jetbrains.kotlin.test.FirParser
|
||||||
import org.jetbrains.kotlin.test.TargetBackend
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor
|
import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor
|
||||||
import org.jetbrains.kotlin.test.backend.classic.ClassicBackendInput
|
|
||||||
import org.jetbrains.kotlin.test.backend.classic.ClassicJvmBackendFacade
|
|
||||||
import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
|
import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
||||||
@@ -26,12 +24,11 @@ import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.REQUIRES_SEPAR
|
|||||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO
|
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO
|
||||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
|
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJvmResultsConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
|
||||||
@@ -112,7 +109,7 @@ abstract class AbstractParcelizeFirBoxTestBase(val parser: FirParser) : Abstract
|
|||||||
get() = ::FirFrontendFacade
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
get() = ::Fir2IrResultsConverter
|
get() = ::Fir2IrJvmResultsConverter
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||||
get() = ::JvmIrBackendFacade
|
get() = ::JvmIrBackendFacade
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user