Move skipMetadataVersionCheck flag to LanguageVersionSettings
This makes it possible to avoid the CompilerConfiguration instance in injectors, because CompilerDeserializationConfiguration was the only left component that required it. LanguageVersionSettings is not a good name for this entity anymore, it should be renamed in the future
This commit is contained in:
@@ -233,8 +233,6 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
||||
configuration.put(CLIConfigurationKeys.COMPILER_JAR_LOCATOR, locator);
|
||||
}
|
||||
|
||||
configuration.put(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK, arguments.skipMetadataVersionCheck);
|
||||
|
||||
setupLanguageVersionSettings(configuration, arguments);
|
||||
}
|
||||
|
||||
@@ -281,6 +279,7 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
||||
new LanguageVersionSettingsImpl(
|
||||
languageVersion,
|
||||
ApiVersion.createByLanguageVersion(apiVersion),
|
||||
arguments.skipMetadataVersionCheck,
|
||||
extraLanguageFeatures,
|
||||
arguments.apiVersion != null
|
||||
)
|
||||
|
||||
@@ -130,6 +130,7 @@ object JvmRuntimeVersionsConsistencyChecker {
|
||||
val newSettings = LanguageVersionSettingsImpl(
|
||||
languageVersionSettings.languageVersion,
|
||||
inferredApiVersion,
|
||||
languageVersionSettings.skipMetadataVersionCheck,
|
||||
languageVersionSettings.additionalFeatures,
|
||||
isApiVersionExplicit = false
|
||||
)
|
||||
|
||||
@@ -22,8 +22,7 @@ import org.jetbrains.kotlin.cli.common.repl.*
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.cli.jvm.repl.GenericReplCompiler
|
||||
import org.jetbrains.kotlin.cli.jvm.repl.GenericReplCompilerState
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.daemon.common.CompileService
|
||||
import org.jetbrains.kotlin.daemon.common.RemoteOperationsTracer
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||
@@ -53,7 +52,8 @@ open class KotlinJvmReplService(
|
||||
addJvmClasspathRoots(PathUtil.getKotlinPathsForCompiler().let { listOf(it.runtimePath, it.reflectPath, it.scriptRuntimePath) })
|
||||
addJvmClasspathRoots(templateClasspath)
|
||||
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script")
|
||||
put(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK, true)
|
||||
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS,
|
||||
LanguageVersionSettingsImpl(LanguageVersion.LATEST, ApiVersion.LATEST, skipMetadataVersionCheck = true))
|
||||
}
|
||||
|
||||
protected fun makeScriptDefinition(templateClasspath: List<File>, templateClassName: String): KotlinScriptDefinition? {
|
||||
|
||||
@@ -20,9 +20,6 @@ object CommonConfigurationKeys {
|
||||
@JvmField
|
||||
val LANGUAGE_VERSION_SETTINGS = CompilerConfigurationKey<LanguageVersionSettings>("language version settings")
|
||||
|
||||
@JvmField
|
||||
val SKIP_METADATA_VERSION_CHECK = CompilerConfigurationKey<Boolean>("skip metadata version check")
|
||||
|
||||
@JvmField
|
||||
val DISABLE_INLINE = CompilerConfigurationKey<Boolean>("disable inline")
|
||||
|
||||
|
||||
+1
-2
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.resolve
|
||||
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
@@ -25,5 +24,5 @@ import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfigu
|
||||
class CompilerDeserializationConfiguration(configuration: CompilerConfiguration) : DeserializationConfiguration {
|
||||
override val typeAliasesAllowed = configuration.languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
|
||||
|
||||
override val skipMetadataVersionCheck = configuration.getBoolean(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK)
|
||||
override val skipMetadataVersionCheck = configuration.languageVersionSettings.skipMetadataVersionCheck
|
||||
}
|
||||
|
||||
@@ -108,6 +108,8 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
||||
override fun supportsFeature(feature: LanguageFeature): Boolean =
|
||||
languageFeatures[feature] ?: delegate.supportsFeature(feature)
|
||||
|
||||
override val skipMetadataVersionCheck: Boolean get() = false
|
||||
|
||||
override val additionalFeatures: Collection<LanguageFeature>
|
||||
get() = error("Must not be called")
|
||||
|
||||
|
||||
@@ -100,6 +100,8 @@ interface LanguageVersionSettings {
|
||||
// Please do not use this to enable/disable specific features/checks. Instead add a new LanguageFeature entry and call supportsFeature
|
||||
val languageVersion: LanguageVersion
|
||||
|
||||
val skipMetadataVersionCheck: Boolean
|
||||
|
||||
val additionalFeatures: Collection<LanguageFeature>
|
||||
|
||||
@Deprecated("This is a temporary solution, please do not use.")
|
||||
@@ -109,6 +111,7 @@ interface LanguageVersionSettings {
|
||||
class LanguageVersionSettingsImpl @JvmOverloads constructor(
|
||||
override val languageVersion: LanguageVersion,
|
||||
override val apiVersion: ApiVersion,
|
||||
override val skipMetadataVersionCheck: Boolean = false,
|
||||
additionalFeatures: Collection<LanguageFeature> = emptySet(),
|
||||
override val isApiVersionExplicit: Boolean = false
|
||||
) : LanguageVersionSettings {
|
||||
|
||||
@@ -93,6 +93,7 @@ fun Project.getLanguageVersionSettings(contextModule: Module? = null): LanguageV
|
||||
return LanguageVersionSettingsImpl(
|
||||
languageVersion,
|
||||
apiVersion,
|
||||
arguments.skipMetadataVersionCheck,
|
||||
extraLanguageFeatures
|
||||
)
|
||||
}
|
||||
@@ -111,7 +112,12 @@ val Module.languageVersionSettings: LanguageVersionSettings
|
||||
this
|
||||
)
|
||||
|
||||
return LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures)
|
||||
return LanguageVersionSettingsImpl(
|
||||
languageVersion,
|
||||
ApiVersion.createByLanguageVersion(apiVersion),
|
||||
facetSettings.skipMetadataVersionCheck,
|
||||
extraLanguageFeatures
|
||||
)
|
||||
}
|
||||
|
||||
val Module.targetPlatform: TargetPlatformKind<*>?
|
||||
|
||||
@@ -123,6 +123,12 @@ class KotlinFacetSettings {
|
||||
coroutinesError = value == CoroutineSupport.DISABLED
|
||||
}
|
||||
}
|
||||
|
||||
var skipMetadataVersionCheck: Boolean
|
||||
get() = compilerArguments?.skipMetadataVersionCheck == true
|
||||
set(value) {
|
||||
compilerArguments!!.skipMetadataVersionCheck = value
|
||||
}
|
||||
}
|
||||
|
||||
fun TargetPlatformKind<*>.createCompilerArguments(): CommonCompilerArguments {
|
||||
|
||||
Reference in New Issue
Block a user