[KLIB IC] Fix dirty declaration detector

- make kjs-stdlib be compiled correctly in IC mode
This commit is contained in:
Roman Artemev
2020-06-19 16:08:28 +03:00
committed by romanart
parent cc818025df
commit 2c3d8feb26
@@ -6,9 +6,7 @@
package org.jetbrains.kotlin.backend.common.serialization
import org.jetbrains.kotlin.backend.common.serialization.encodings.BinarySymbolData
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.DeserializedDescriptor
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
import org.jetbrains.kotlin.ir.declarations.IrSymbolOwner
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
@@ -111,6 +109,11 @@ class CurrentModuleWithICDeserializer(
private fun DeclarationDescriptor.isDirtyDescriptor(): Boolean {
if (this is PropertyAccessorDescriptor) return correspondingProperty.isDirtyDescriptor()
// Since descriptors for FO methods of `kotlin.Any` (toString, equals, hashCode) are Deserialized even in
// dirty files make test more precise checking containing declaration for non-static members
if (this is CallableMemberDescriptor && dispatchReceiverParameter != null) {
return containingDeclaration.isDirtyDescriptor()
}
return this !is DeserializedDescriptor
}