From e43bf90b9cedb3597844995fa32078bba2d6f254 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 21 Nov 2017 13:32:22 +0100 Subject: [PATCH] Use CompilerDeserializationConfiguration in JS IC package fragment This is more correct because it'll allow the incremental package fragment to be deserialized with the same analysis flags as the changed sources. Currently it doesn't seem possible to add a reasonable test for this fix because there are no flags relevant for JS except for skipMetadataVersionCheck, which is experimental and thus doesn't require a test --- .../kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt index 8df9b91e96f..b3ad1c43e8c 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt @@ -32,7 +32,6 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory -import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil import org.jetbrains.kotlin.serialization.js.PackagesWithHeaderMetadata @@ -67,18 +66,18 @@ object TopDownAnalyzerFacadeForJS { config: JsConfig ): JsAnalysisResult { val lookupTracker = config.configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING + val languageVersionSettings = config.configuration.languageVersionSettings val packageFragment = config.configuration[JSConfigurationKeys.INCREMENTAL_DATA_PROVIDER]?.let { val metadata = PackagesWithHeaderMetadata(it.headerMetadata, it.compiledPackageParts.values.map { it.metadata }) - KotlinJavascriptSerializationUtil.readDescriptors(metadata, - moduleContext.storageManager, - moduleContext.module, - DeserializationConfiguration.Default, - lookupTracker) + KotlinJavascriptSerializationUtil.readDescriptors( + metadata, moduleContext.storageManager, moduleContext.module, + CompilerDeserializationConfiguration(languageVersionSettings), lookupTracker + ) } val analyzerForJs = createTopDownAnalyzerForJs( moduleContext, trace, FileBasedDeclarationProviderFactory(moduleContext.storageManager, files), - config.configuration.languageVersionSettings, + languageVersionSettings, lookupTracker, packageFragment )