Drop JvmMetadataVersion.skipCheck, support this correctly

Pass the value of this flag via DeserializationConfiguration
This commit is contained in:
Alexander Udalov
2017-02-08 18:31:02 +03:00
parent e1463f9e0f
commit a1a71a01b1
18 changed files with 73 additions and 70 deletions
@@ -23,6 +23,9 @@ public class CommonConfigurationKeys {
public static final CompilerConfigurationKey<LanguageVersionSettings> LANGUAGE_VERSION_SETTINGS =
CompilerConfigurationKey.create("language version settings");
public static final CompilerConfigurationKey<Boolean> SKIP_METADATA_VERSION_CHECK =
CompilerConfigurationKey.create("skip metadata version check");
public static final CompilerConfigurationKey<Boolean> DISABLE_INLINE =
CompilerConfigurationKey.create("disable inline");
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.frontend.di
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.container.StorageComponentContainer
@@ -144,7 +145,9 @@ fun createContainerForLazyResolve(
useInstance(LookupTracker.DO_NOTHING)
useInstance(languageVersionSettings)
//TODO: need to propagate full CompilerConfiguration to frontend
useInstance(CompilerConfiguration.EMPTY)
useInstance(CompilerConfiguration().apply {
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, languageVersionSettings)
})
useImpl<FileScopeProviderImpl>()
useImpl<CompilerDeserializationConfiguration>()
@@ -16,11 +16,17 @@
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
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
class CompilerDeserializationConfiguration(private val languageVersionSettings: LanguageVersionSettings) : DeserializationConfiguration {
override val typeAliasesAllowed: Boolean
get() = languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
class CompilerDeserializationConfiguration(configuration: CompilerConfiguration) : DeserializationConfiguration {
private val languageVersionSettings =
configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
override val typeAliasesAllowed = languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
override val skipMetadataVersionCheck = configuration.getBoolean(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK)
}