MAYBE?
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt
index 9e54bc0..54665af 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt
@@ -267,7 +267,7 @@
)
// avoid duplicate annotations for local variables
result.annotations = deserializeAnnotations(proto.annotationList)
- if (setParent) {
+ if (setParent && ((uid as? IdSignature.CommonSignature)?.nameSegments?.size?.let { it > 1 } != false)) {
result.parent = currentParent
}
return result
diff --git a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt
index 4f29e27..a71743c 100644
--- a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt
+++ b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt
@@ -93,24 +93,7 @@
internationService = internationService
)
for (declarationProto in irProto.declarationList) {
- val declaration = deserializer.deserializeDeclaration(declarationProto, setParent = false)
- val parent = try {
- declaration.parent
- } catch (_: UninitializedPropertyAccessException) {
- // HERE IS AN EXPLANATION:
- // If declaration.parent has a parent by itself, then such a parent is its inner class parent
- // If it does not, then it is a function in toplevelParent not knowing about it...
- //
- // We have no other way to check whether parent was set or not.
- declaration.parent = toplevelParent
- declaration.parent
- }
-
- if (parent is IrDeclarationContainer) {
- if (declaration !in parent.declarations) {
- parent.declarations += declaration
- }
- }
+ deserializer.deserializeDeclaration(declarationProto, setParent = true)
}
symbolTable.signaturer.withFileSignature(dummyFileSignature) {
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt
index 579b04e..4cffba7 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt
@@ -90,7 +90,7 @@
private fun TestConfigurationBuilder.configureForSerialization() {
defaultDirectives {
- SERIALIZE_IR.with(JvmSerializeIrMode.INLINE)
+ SERIALIZE_IR.with(JvmSerializeIrMode.ALL)
+LINK_VIA_SIGNATURES
}