[FIR] refactoring: extract registration of lazy declaration resolve contract checking to a separate function in tests
This commit is contained in:
committed by
Space Team
parent
747ab5fdb3
commit
a55b4a977b
@@ -51,3 +51,7 @@ fun <T, R> ((TestServices, T) -> R).bind(value: T): Constructor<R> {
|
||||
fun <T1, T2, R> ((TestServices, T1, T2) -> R).bind(value1: T1, value2: T2): Constructor<R> {
|
||||
return { this.invoke(it, value1, value2) }
|
||||
}
|
||||
|
||||
fun <R> (() -> R).coerce(): Constructor<R> {
|
||||
return { this.invoke() }
|
||||
}
|
||||
|
||||
+1
-13
@@ -19,7 +19,6 @@ 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.DeclarationsDumpHandler
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.OldNewInferenceMetaInfoProcessor
|
||||
import org.jetbrains.kotlin.test.frontend.fir.DisableLazyResolveChecksAfterAnalysisChecker
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.*
|
||||
@@ -111,18 +110,7 @@ abstract class AbstractFirNativeDiagnosticsTest : AbstractDiagnosticsNativeTestB
|
||||
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.useAdditionalService { FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar() }
|
||||
|
||||
builder.useAfterAnalysisCheckers(
|
||||
::DisableLazyResolveChecksAfterAnalysisChecker,
|
||||
)
|
||||
|
||||
builder.firHandlersStep {
|
||||
useHandlers(
|
||||
::FirResolveContractViolationErrorHandler,
|
||||
)
|
||||
}
|
||||
|
||||
builder.enableLazyResolvePhaseChecking()
|
||||
|
||||
builder.forTestsMatching("compiler/testData/diagnostics/*") {
|
||||
configurationForClassicAndFirTestsAlongside()
|
||||
|
||||
+20
-11
@@ -13,7 +13,9 @@ import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
import org.jetbrains.kotlin.test.bind
|
||||
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.coerce
|
||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
@@ -31,23 +33,14 @@ import org.jetbrains.kotlin.test.model.FrontendKinds
|
||||
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.fir.FirOldFrontendMetaConfigurator
|
||||
import org.jetbrains.kotlin.test.services.service
|
||||
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
|
||||
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
|
||||
|
||||
abstract class AbstractFirDiagnosticTest : AbstractKotlinCompilerTest() {
|
||||
override fun TestConfigurationBuilder.configuration() {
|
||||
baseFirDiagnosticTestConfiguration()
|
||||
useAdditionalService { FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar() }
|
||||
|
||||
useAfterAnalysisCheckers(
|
||||
::DisableLazyResolveChecksAfterAnalysisChecker,
|
||||
)
|
||||
|
||||
firHandlersStep {
|
||||
useHandlers(
|
||||
::FirResolveContractViolationErrorHandler,
|
||||
)
|
||||
}
|
||||
enableLazyResolvePhaseChecking()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,3 +175,19 @@ class FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar : Fir
|
||||
}
|
||||
}
|
||||
|
||||
fun TestConfigurationBuilder.enableLazyResolvePhaseChecking() {
|
||||
useAdditionalServices(
|
||||
service<FirSessionComponentRegistrar>(::FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar.coerce())
|
||||
)
|
||||
|
||||
useAfterAnalysisCheckers(
|
||||
::DisableLazyResolveChecksAfterAnalysisChecker,
|
||||
)
|
||||
|
||||
configureFirHandlersStep {
|
||||
useHandlers(
|
||||
::FirResolveContractViolationErrorHandler,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-15
@@ -8,14 +8,11 @@ package org.jetbrains.kotlin.fir.plugin.runners
|
||||
import org.jetbrains.kotlin.fir.plugin.services.ExtensionRegistrarConfigurator
|
||||
import org.jetbrains.kotlin.fir.plugin.services.PluginAnnotationsProvider
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.builders.firHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
|
||||
import org.jetbrains.kotlin.test.frontend.fir.DisableLazyResolveChecksAfterAnalysisChecker
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirResolveContractViolationErrorHandler
|
||||
import org.jetbrains.kotlin.test.runners.AbstractFirDiagnosticTest
|
||||
import org.jetbrains.kotlin.test.runners.FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar
|
||||
import org.jetbrains.kotlin.test.runners.codegen.AbstractFirBlackBoxCodegenTest
|
||||
import org.jetbrains.kotlin.test.runners.enableLazyResolvePhaseChecking
|
||||
|
||||
open class AbstractFirPluginBlackBoxCodegenTest : AbstractFirBlackBoxCodegenTest() {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
@@ -32,17 +29,7 @@ abstract class AbstractFirPluginDiagnosticTest : AbstractFirDiagnosticTest() {
|
||||
}
|
||||
|
||||
fun TestConfigurationBuilder.commonFirWithPluginFrontendConfiguration() {
|
||||
useAfterAnalysisCheckers(
|
||||
::DisableLazyResolveChecksAfterAnalysisChecker,
|
||||
)
|
||||
|
||||
useAdditionalService { FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar() }
|
||||
|
||||
firHandlersStep {
|
||||
useHandlers(
|
||||
::FirResolveContractViolationErrorHandler,
|
||||
)
|
||||
}
|
||||
enableLazyResolvePhaseChecking()
|
||||
|
||||
defaultDirectives {
|
||||
+ENABLE_PLUGIN_PHASES
|
||||
|
||||
+2
-13
@@ -7,21 +7,18 @@ package org.jetbrains.kotlin.parcelize.test.runners
|
||||
|
||||
import org.jetbrains.kotlin.parcelize.test.services.ParcelizeEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.builders.firHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.frontend.fir.DisableLazyResolveChecksAfterAnalysisChecker
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFailingTestSuppressor
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirIdenticalChecker
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirResolveContractViolationErrorHandler
|
||||
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
|
||||
import org.jetbrains.kotlin.test.runners.FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar
|
||||
import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration
|
||||
import org.jetbrains.kotlin.test.runners.enableLazyResolvePhaseChecking
|
||||
import org.jetbrains.kotlin.test.services.fir.FirOldFrontendMetaConfigurator
|
||||
|
||||
abstract class AbstractFirParcelizeDiagnosticTest : AbstractKotlinCompilerTest() {
|
||||
override fun TestConfigurationBuilder.configuration() {
|
||||
baseFirDiagnosticTestConfiguration()
|
||||
useAdditionalService { FirLazyDeclarationResolverWithPhaseCheckingSessionComponentRegistrar() }
|
||||
enableLazyResolvePhaseChecking()
|
||||
|
||||
defaultDirectives {
|
||||
+FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
||||
@@ -32,16 +29,8 @@ abstract class AbstractFirParcelizeDiagnosticTest : AbstractKotlinCompilerTest()
|
||||
useAfterAnalysisCheckers(
|
||||
::FirIdenticalChecker,
|
||||
::FirFailingTestSuppressor,
|
||||
::DisableLazyResolveChecksAfterAnalysisChecker,
|
||||
)
|
||||
|
||||
firHandlersStep {
|
||||
useHandlers(
|
||||
::FirResolveContractViolationErrorHandler,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
useMetaTestConfigurators(::FirOldFrontendMetaConfigurator)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user