From 8a181cf2bd899c72c1ac7a7efbffa3f585a02441 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Fri, 22 Jul 2022 16:04:57 +0200 Subject: [PATCH] [FIR] Create stub language settings for FIR-related test to keep relying on it #KT-48872 --- .../kotlin/fir/session/FirSessionFactory.kt | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt index 21dda88a6b7..009c4210117 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt @@ -6,8 +6,7 @@ package org.jetbrains.kotlin.fir.session import org.jetbrains.annotations.TestOnly -import org.jetbrains.kotlin.config.LanguageVersionSettings -import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.checkers.registerJvmCheckers import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin @@ -211,6 +210,29 @@ object FirSessionFactory : FirAbstractSessionFactory() { ) registerModuleData(moduleData) moduleData.bindSession(this) + // Empty stub for tests + register(FirLanguageSettingsComponent::class, FirLanguageSettingsComponent( + object : LanguageVersionSettings { + + private fun stub(): Nothing = TODO( + "It does not yet have well-defined semantics for tests." + + "If you're seeing this, implement it in a test-specific way" + ) + + override fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State { + return LanguageFeature.State.DISABLED + } + + override fun isPreRelease(): Boolean = stub() + + override fun getFlag(flag: AnalysisFlag): T = stub() + + override val apiVersion: ApiVersion + get() = stub() + override val languageVersion: LanguageVersion + get() = stub() + } + )) } } }