From 545c7a8bc55568f8637e6c5d02426d497890832c Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 8 Nov 2024 14:59:04 +0200 Subject: [PATCH] [FIR] Don't add annotations from IR plugin to metadata of synthetic functions Synthetic functions (like delegated or data class members) might have offsets equal to offsets of some real declaration, which may cause clashes with some real declarations with added annotations. Ideally we shouldn't use offsets as keys at all, but it will be addressed later (KT-72957) ^KT-72804 --- .../fir/backend/Fir2IrIrGeneratedDeclarationsRegistrar.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrIrGeneratedDeclarationsRegistrar.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrIrGeneratedDeclarationsRegistrar.kt index 607d3dcaac374..1e4cb24f659af 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrIrGeneratedDeclarationsRegistrar.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrIrGeneratedDeclarationsRegistrar.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.GeneratedDeclarationKey +import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.backend.common.extensions.IrGeneratedDeclarationsRegistrar import org.jetbrains.kotlin.descriptors.Modality @@ -509,6 +510,12 @@ class Fir2IrIrGeneratedDeclarationsRegistrar(private val components: Fir2IrCompo } private fun extractGeneratedIrDeclarations(declaration: FirDeclaration): List { + when (declaration.origin) { + is FirDeclarationOrigin.Synthetic, + is FirDeclarationOrigin.Delegated + -> return emptyList() + else -> {} + } val firFile = declaration.containingFile() ?: return emptyList() val fileFqName = firFile.packageFqName.child(Name.identifier(firFile.name)).asString() val source = declaration.source ?: return emptyList()