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
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user