[JS IR] Fix IC invalidation process when symbols are modified
The patch fixes the cases of IC invalidation when symbols are modified: adding and removing inline, data, in, out, suspend qualifiers. For that purpose an extra hash is used. It is written in a direct dependency graph into an IC cache metadata file. For inline functions a transitive hash is used. For non-inline functions, classes, and others a symbol hash is used. The invalidation routine marks the file as dirty (with 'updated imports' state) if hash is modified. ^KT-51083 Fixed ^KT-51088 Fixed ^KT-51090 Fixed ^KT-51099 Fixed
This commit is contained in:
committed by
Space
parent
644447db84
commit
5b4e9e2966
+6
-6
@@ -3,13 +3,13 @@ STEP 0:
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 2..6:
|
||||
dependencies: lib1
|
||||
modified ir: m.kt
|
||||
STEP 7:
|
||||
dependencies: lib1
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 8:
|
||||
dependencies: lib1, libProxy
|
||||
modifications:
|
||||
@@ -17,22 +17,22 @@ STEP 8:
|
||||
modified ir: m.kt
|
||||
STEP 9..13:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 14:
|
||||
dependencies: lib1, libProxy
|
||||
modified ir: m.kt
|
||||
STEP 15:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 16:
|
||||
dependencies: lib1, libProxy
|
||||
modified ir: m.kt
|
||||
STEP 17..21:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
STEP 22:
|
||||
dependencies: lib1, libProxy
|
||||
modified ir: m.kt
|
||||
STEP 23:
|
||||
dependencies: lib1, libProxy
|
||||
updated inline imports: m.kt
|
||||
updated imports: m.kt
|
||||
|
||||
Reference in New Issue
Block a user