[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
+2 -2
View File
@@ -17,7 +17,7 @@ FILE fqName:<root> fileName:/in.kt
$this: GET_VAR 'x: kotlin.collections.Collection<kotlin.Any> declared in <root>.test2' type=kotlin.collections.Collection<kotlin.Any> origin=null
element: GET_VAR 'a: kotlin.Any declared in <root>.test2' type=kotlin.Any origin=null
FUN name:test3 visibility:public modality:FINAL <T> (a:T of <root>.test3, x:kotlin.collections.Collection<T of <root>.test3>) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER name:a index:0 type:T of <root>.test3
VALUE_PARAMETER name:x index:1 type:kotlin.collections.Collection<T of <root>.test3>
BLOCK_BODY
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/in.kt
$this: GET_VAR 'x: kotlin.collections.Collection<T of <root>.test3> declared in <root>.test3' type=kotlin.collections.Collection<T of <root>.test3> origin=null
element: GET_VAR 'a: T of <root>.test3 declared in <root>.test3' type=T of <root>.test3 origin=null
FUN name:test4 visibility:public modality:FINAL <T> (a:T of <root>.test4, x:kotlin.collections.Collection<T of <root>.test4>) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER name:a index:0 type:T of <root>.test4
VALUE_PARAMETER name:x index:1 type:kotlin.collections.Collection<T of <root>.test4>
BLOCK_BODY