[Compiler CLI] Sort flags and features before appending them to string

JS IR BE incremental compilation infrastructure uses
 LanguageVersionSettings::toString method to detect if any
 compiler features or flags were enabled or disabled.
 It is important that the features and flags order are stable
 in the result string.

^KT-56580 Fixed
This commit is contained in:
Alexander Korepanov
2023-02-14 12:38:56 +01:00
committed by Space Team
parent df450ac43c
commit 43cef114c6
9 changed files with 69 additions and 2 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.backend.js.ic
import org.jetbrains.kotlin.backend.common.serialization.Hash128Bits
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.CrossModuleReferences
import org.jetbrains.kotlin.ir.IrElement
@@ -87,6 +88,8 @@ internal class ICHasher {
private val hashCalculator = HashCalculatorForIC()
fun calculateConfigHash(config: CompilerConfiguration): ICHash {
hashCalculator.update(KotlinCompilerVersion.VERSION)
val importantSettings = listOf(
JSConfigurationKeys.GENERATE_DTS,
JSConfigurationKeys.MODULE_KIND,