[JS IR] IC invalidation refactoring

- Huge refactoring for IC
  - Update hash combination logic
  - Introduce value class for IC hashes
  - Calc md5 directly by function IR
  - Split IC logic by classes
  - Move JsIrLinkerLoader into separate file
  - CacheUpdateStatus is a sealed class
  - Render TYPE_PARAMETER reified flag

^KT-51081 Fixed
^KT-51084 Fixed
This commit is contained in:
Alexander Korepanov
2022-03-15 05:34:19 +00:00
committed by Space
parent c38dd1c004
commit 69295f2cf0
246 changed files with 1724 additions and 2048 deletions
@@ -1,4 +1,3 @@
// TODO: Uncomment default param after KT-51081
inline fun foo1(/** x: Int = 123 */) = 77
inline fun foo1(x: Int = 77) = x
inline fun foo2() = 88
inline fun foo3() = "foo3 update"
@@ -0,0 +1,3 @@
inline fun foo1(x: Int = 99) = x
inline fun foo2() = 88
inline fun foo3() = "foo3 update"
@@ -0,0 +1,3 @@
inline fun foo1(x: () -> Int = { 99 }) = x()
inline fun foo2() = 88
inline fun foo3() = "foo3 update"
@@ -0,0 +1,3 @@
inline fun foo1(x: () -> Int = { 88 }) = x()
inline fun foo2() = 88
inline fun foo3() = "foo3 update"
@@ -33,3 +33,18 @@ STEP 6:
modifications:
U : l1.kt.6.txt -> l1.kt
dirty: l1.kt
STEP 7:
dependencies: stdlib
modifications:
U : l1.kt.7.txt -> l1.kt
dirty: l1.kt
STEP 8:
dependencies: stdlib
modifications:
U : l1.kt.8.txt -> l1.kt
dirty: l1.kt
STEP 9:
dependencies: stdlib
modifications:
U : l1.kt.9.txt -> l1.kt
dirty: l1.kt
@@ -16,3 +16,13 @@ STEP 5:
dirty: m.kt
STEP 6:
dependencies: stdlib, lib1
dirty: m.kt
STEP 7:
dependencies: stdlib, lib1
dirty: m.kt
STEP 8:
dependencies: stdlib, lib1
dirty: m.kt
STEP 9:
dependencies: stdlib, lib1
dirty: m.kt
@@ -14,3 +14,9 @@ STEP 5:
libs: lib1, main
STEP 6:
libs: lib1, main
STEP 7:
libs: lib1, main
STEP 8:
libs: lib1, main
STEP 9:
libs: lib1, main