[FIR] refactoring: extract registration of lazy declaration resolve contract checking to a separate function in tests

This commit is contained in:
Ilya Kirillov
2022-12-28 13:06:09 +01:00
committed by Space Team
parent 747ab5fdb3
commit a55b4a977b
5 changed files with 29 additions and 52 deletions
@@ -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()
@@ -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,
)
}
}