[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
@@ -0,0 +1 @@
fun demo() = 42
@@ -0,0 +1,6 @@
STEP 0..3:
added file: l1.kt
STEP 4..5:
STEP 6:
added file: l1.kt
STEP 7:
@@ -0,0 +1,7 @@
fun box(stepId: Int): String {
when (stepId) {
in 0..7 -> if (demo() != 42) return "Fail"
else -> return "Unknown"
}
return "OK"
}
@@ -0,0 +1,10 @@
STEP 0..3:
dependencies: lib1
added file: m.kt
STEP 4..5:
dependencies: lib1
STEP 6:
dependencies: lib1
added file: m.kt
STEP 7:
dependencies: lib1
@@ -0,0 +1,30 @@
MODULES: lib1, main
STEP 0:
libs: lib1, main
dirty js: lib1, main
STEP 1:
language: +TypeAliases
libs: lib1, main
dirty js: lib1, main
STEP 2:
language: +TypeAliases, +BoundCallableReferences, +LocalDelegatedProperties, +TopLevelSealedInheritance
libs: lib1, main
dirty js: lib1, main
STEP 3:
language: +TypeAliases, +BoundCallableReferences, +TopLevelSealedInheritance
libs: lib1, main
dirty js: lib1, main
STEP 4:
language: +BoundCallableReferences, +TopLevelSealedInheritance, +TypeAliases
libs: lib1, main
STEP 5:
language: +BoundCallableReferences, +TypeAliases, +TopLevelSealedInheritance
libs: lib1, main
STEP 6:
language: +BoundCallableReferences, -TypeAliases, +TopLevelSealedInheritance
libs: lib1, main
dirty js: lib1, main
STEP 7:
language: +TopLevelSealedInheritance, +BoundCallableReferences, +TypeAliases
libs: lib1, main