[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:
committed by
Space
parent
c38dd1c004
commit
69295f2cf0
+2
-2
@@ -1,7 +1,7 @@
|
||||
FILE fqName:<root> fileName:/builtinMap.kt
|
||||
FUN name:plus visibility:public modality:FINAL <K1, V1> ($receiver:kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus>, pair:kotlin.Pair<K1 of <root>.plus, V1 of <root>.plus>) returnType:kotlin.collections.Map<K1 of <root>.plus, V1 of <root>.plus>
|
||||
TYPE_PARAMETER name:K1 index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:V1 index:1 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:K1 index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
TYPE_PARAMETER name:V1 index:1 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus>
|
||||
VALUE_PARAMETER name:pair index:0 type:kotlin.Pair<K1 of <root>.plus, V1 of <root>.plus>
|
||||
BLOCK_BODY
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
FILE fqName:<root> fileName:/builtinMap.kt
|
||||
FUN name:plus visibility:public modality:FINAL <K1, V1> ($receiver:kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus>, pair:kotlin.Pair<K1 of <root>.plus, V1 of <root>.plus>) returnType:kotlin.collections.Map<K1 of <root>.plus, V1 of <root>.plus>
|
||||
TYPE_PARAMETER name:K1 index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:V1 index:1 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:K1 index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
TYPE_PARAMETER name:V1 index:1 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus>
|
||||
VALUE_PARAMETER name:pair index:0 type:kotlin.Pair<K1 of <root>.plus, V1 of <root>.plus>
|
||||
BLOCK_BODY
|
||||
|
||||
@@ -2,7 +2,7 @@ Module: m1
|
||||
FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
|
||||
CLASS CLASS name:Base modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
CONSTRUCTOR visibility:public <> (x:T of <root>.Base) returnType:<root>.Base<T of <root>.Base> [primary]
|
||||
VALUE_PARAMETER name:x index:0 type:T of <root>.Base
|
||||
BLOCK_BODY
|
||||
@@ -20,7 +20,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of <root>.Base visibility:private [final]' type=T of <root>.Base origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Base<T of <root>.Base> declared in <root>.Base.<get-x>' type=<root>.Base<T of <root>.Base> origin=null
|
||||
FUN name:foo visibility:public modality:ABSTRACT <Y> ($this:<root>.Base<T of <root>.Base>, y:Y of <root>.Base.foo) returnType:T of <root>.Base
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
VALUE_PARAMETER name:y index:0 type:Y of <root>.Base.foo
|
||||
PROPERTY name:bar visibility:public modality:ABSTRACT [var]
|
||||
@@ -34,12 +34,12 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
|
||||
PROPERTY name:exn visibility:public modality:ABSTRACT [var]
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-exn> visibility:public modality:ABSTRACT <Z> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <root>.Base.<get-exn>) returnType:T of <root>.Base
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Base.<get-exn>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-exn> visibility:public modality:ABSTRACT <Z> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <root>.Base.<set-exn>, <set-?>:T of <root>.Base) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Base.<set-exn>
|
||||
VALUE_PARAMETER name:<set-?> index:0 type:T of <root>.Base
|
||||
@@ -60,7 +60,7 @@ Module: m2
|
||||
FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
CLASS CLASS name:Derived1 modality:FINAL visibility:public superTypes:[<root>.Base<T of <root>.Derived1>]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
CONSTRUCTOR visibility:public <> (x:T of <root>.Derived1) returnType:<root>.Derived1<T of <root>.Derived1> [primary]
|
||||
VALUE_PARAMETER name:x index:0 type:T of <root>.Derived1
|
||||
BLOCK_BODY
|
||||
@@ -71,7 +71,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
FUN name:foo visibility:public modality:FINAL <Y> ($this:<root>.Derived1<T of <root>.Derived1>, y:Y of <root>.Derived1.foo) returnType:T of <root>.Derived1
|
||||
overridden:
|
||||
public abstract fun foo <Y> (y: Y of <root>.Base.foo): T of <root>.Base declared in <root>.Base
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
VALUE_PARAMETER name:y index:0 type:Y of <root>.Derived1.foo
|
||||
BLOCK_BODY
|
||||
@@ -110,7 +110,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:FINAL [var]
|
||||
overridden:
|
||||
public final fun <get-exn> <Z> (): T of <root>.Base declared in <root>.Base
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Derived1.<get-exn>
|
||||
BLOCK_BODY
|
||||
@@ -121,7 +121,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:FINAL [var]
|
||||
overridden:
|
||||
public final fun <set-exn> <Z> (<set-?>: T of <root>.Base): kotlin.Unit declared in <root>.Base
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Derived1.<set-exn>
|
||||
VALUE_PARAMETER name:value index:0 type:T of <root>.Derived1
|
||||
|
||||
@@ -2,7 +2,7 @@ Module: m1
|
||||
FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
|
||||
CLASS CLASS name:Base modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
CONSTRUCTOR visibility:public <> (x:T of <root>.Base) returnType:<root>.Base<T of <root>.Base> [primary]
|
||||
VALUE_PARAMETER name:x index:0 type:T of <root>.Base
|
||||
BLOCK_BODY
|
||||
@@ -20,7 +20,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of <root>.Base visibility:private [final]' type=T of <root>.Base origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Base<T of <root>.Base> declared in <root>.Base.<get-x>' type=<root>.Base<T of <root>.Base> origin=null
|
||||
FUN name:foo visibility:public modality:ABSTRACT <Y> ($this:<root>.Base<T of <root>.Base>, y:Y of <root>.Base.foo) returnType:T of <root>.Base
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
VALUE_PARAMETER name:y index:0 type:Y of <root>.Base.foo
|
||||
PROPERTY name:bar visibility:public modality:ABSTRACT [var]
|
||||
@@ -34,12 +34,12 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
|
||||
PROPERTY name:exn visibility:public modality:ABSTRACT [var]
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-exn> visibility:public modality:ABSTRACT <Z> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <root>.Base.<get-exn>) returnType:T of <root>.Base
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Base.<get-exn>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-exn> visibility:public modality:ABSTRACT <Z> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <root>.Base.<set-exn>, <set-?>:T of <root>.Base) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Base.<set-exn>
|
||||
VALUE_PARAMETER name:<set-?> index:0 type:T of <root>.Base
|
||||
@@ -60,7 +60,7 @@ Module: m2
|
||||
FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
CLASS CLASS name:Derived1 modality:FINAL visibility:public superTypes:[<root>.Base<T of <root>.Derived1>]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
CONSTRUCTOR visibility:public <> (x:T of <root>.Derived1) returnType:<root>.Derived1<T of <root>.Derived1> [primary]
|
||||
VALUE_PARAMETER name:x index:0 type:T of <root>.Derived1
|
||||
BLOCK_BODY
|
||||
@@ -71,7 +71,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
FUN name:foo visibility:public modality:OPEN <Y> ($this:<root>.Derived1<T of <root>.Derived1>, y:Y of <root>.Derived1.foo) returnType:T of <root>.Derived1
|
||||
overridden:
|
||||
public abstract fun foo <Y> (y: Y of <root>.Base.foo): T of <root>.Base declared in <root>.Base
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
VALUE_PARAMETER name:y index:0 type:Y of <root>.Derived1.foo
|
||||
BLOCK_BODY
|
||||
@@ -110,7 +110,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:OPEN [var]
|
||||
overridden:
|
||||
public abstract fun <get-exn> <Z> (): T of <root>.Base declared in <root>.Base
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Derived1.<get-exn>
|
||||
BLOCK_BODY
|
||||
@@ -121,7 +121,7 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
|
||||
correspondingProperty: PROPERTY name:exn visibility:public modality:OPEN [var]
|
||||
overridden:
|
||||
public abstract fun <set-exn> <Z> (<set-?>: T of <root>.Base): kotlin.Unit declared in <root>.Base
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Derived1.<set-exn>
|
||||
VALUE_PARAMETER name:value index:0 type:T of <root>.Derived1
|
||||
|
||||
+4
-4
@@ -1,17 +1,17 @@
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:public superTypes:[<unbound IrClassPublicSymbolImpl>]
|
||||
$this: VALUE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:<this> type:<root>.J1<T1 of <root>.J1>
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:T1 index:0 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?]
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:T1 index:0 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?] reified:false
|
||||
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:<root>.J1<T1 of <root>.J1>
|
||||
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <X1> (x1:X1 of <root>.J1.<init>?) returnType:<root>.J1<T1 of <root>.J1>
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:X1 index:1 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?]
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:X1 index:1 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?] reified:false
|
||||
VALUE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:x1 index:0 type:X1 of <root>.J1.<init>?
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:J2 modality:OPEN visibility:public [inner] superTypes:[<unbound IrClassPublicSymbolImpl>]
|
||||
$this: VALUE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:<this> type:<root>.J1.J2<T2 of <root>.J1.J2, T1 of <root>.J1>
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:T2 index:0 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?]
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:T2 index:0 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?] reified:false
|
||||
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> ($this:<root>.J1<T1 of <root>.J1>) returnType:<root>.J1.J2<T2 of <root>.J1.J2, T1 of <root>.J1>
|
||||
$outer: VALUE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:<this> type:<root>.J1<T1 of <root>.J1>
|
||||
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <X2> ($this:<root>.J1<T1 of <root>.J1>, x2:X2 of <root>.J1.J2.<init>?) returnType:<root>.J1.J2<T2 of <root>.J1.J2, T1 of <root>.J1>
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:X2 index:1 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?]
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:X2 index:1 variance: superTypes:[<unbound IrClassPublicSymbolImpl>?] reified:false
|
||||
$outer: VALUE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:<this> type:<root>.J1<T1 of <root>.J1>
|
||||
VALUE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:x2 index:0 type:X2 of <root>.J1.J2.<init>?
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:<unbound IrClassPublicSymbolImpl>, other:<unbound IrClassPublicSymbolImpl>?) returnType:<unbound IrClassPublicSymbolImpl> [fake_override,operator]
|
||||
|
||||
Reference in New Issue
Block a user