[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,9 +1,9 @@
FILE fqName:<root> fileName:/useImportedMember.kt
CLASS INTERFACE name:I modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I<G of <root>.I>
TYPE_PARAMETER name:G index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:G index:0 variance: superTypes:[kotlin.Any?] reified:false
FUN name:fromInterface visibility:public modality:OPEN <T> ($this:<root>.I<G of <root>.I>, $receiver:T of <root>.I.fromInterface) returnType:T of <root>.I.fromInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.I<G of <root>.I>
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.I.fromInterface
BLOCK_BODY
@@ -37,7 +37,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
PROPERTY name:fromClass visibility:public modality:FINAL [val]
FUN name:<get-fromClass> visibility:public modality:FINAL <T> ($this:<root>.BaseClass, $receiver:T of <root>.BaseClass.<get-fromClass>) returnType:T of <root>.BaseClass.<get-fromClass>
correspondingProperty: PROPERTY name:fromClass visibility:public modality:FINAL [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.BaseClass
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.BaseClass.<get-fromClass>
BLOCK_BODY
@@ -108,7 +108,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
RETURN type=kotlin.Nothing from='public final fun <get-ext> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=6
FUN name:g1 visibility:public modality:FINAL <T> ($this:<root>.C, t:T of <root>.C.g1) returnType:T of <root>.C.g1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:t index:0 type:T of <root>.C.g1
BLOCK_BODY
@@ -117,7 +117,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
PROPERTY name:g2 visibility:public modality:FINAL [val]
FUN name:<get-g2> visibility:public modality:FINAL <T> ($this:<root>.C, $receiver:T of <root>.C.<get-g2>) returnType:T of <root>.C.<get-g2>
correspondingProperty: PROPERTY name:g2 visibility:public modality:FINAL [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.C
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.C.<get-g2>
BLOCK_BODY
@@ -130,7 +130,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
correspondingProperty: PROPERTY FAKE_OVERRIDE name:fromClass visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-fromClass> <T> (): T of <root>.BaseClass.<get-fromClass> declared in <root>.BaseClass
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.BaseClass
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.C.<get-fromClass>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
@@ -152,7 +152,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
FUN FAKE_OVERRIDE name:fromInterface visibility:public modality:OPEN <T> ($this:<root>.I<kotlin.String>, $receiver:T of <root>.C.fromInterface) returnType:T of <root>.C.fromInterface [fake_override]
overridden:
public open fun fromInterface <T> (): T of <root>.I.fromInterface declared in <root>.I
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.I<kotlin.String>
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.C.fromInterface
FUN FAKE_OVERRIDE name:genericFromSuper visibility:public modality:OPEN <> ($this:<root>.I<kotlin.String>, g:kotlin.String) returnType:kotlin.String [fake_override]