The patch fixes lost IC dependencies for inherited class or interface methods.
Especially between a fake override function and its implementation.
Since IrSymbolDeserializer doesn't provide all class methods,
they are collected from the class definitions.
^KT-53063 Fixed
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
The patch enables the direct dependency between
fake override inline function and its implementation from the base class.
Because klibs do not keep a signature of fake override implementation,
incremental cache can not use the signature index,
therefore the signature is serialized to a cache file as is.
^KT-51896 Fixed