From fd146e3eed929df5fb6473645e5e34f08cd8955e Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Wed, 17 Feb 2021 19:04:04 +0300 Subject: [PATCH] FIR2IR: Copy annotations from original declarations to fake overrides --- .../jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt | 4 +++- .../box/compileKotlinAgainstKotlin/annotationInInterface.kt | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index ce237866e02..04c2eb35488 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -1193,7 +1193,9 @@ class Fir2IrDeclarationStorage( } private fun IrMutableAnnotationContainer.convertAnnotationsFromLibrary(firAnnotationContainer: FirAnnotationContainer) { - if ((firAnnotationContainer as? FirDeclaration)?.isFromLibrary == true) { + if ((firAnnotationContainer as? FirDeclaration)?.isFromLibrary == true || + (firAnnotationContainer is FirCallableMemberDeclaration<*> && firAnnotationContainer.isSubstitutionOrIntersectionOverride) + ) { annotationGenerator.generate(this, firAnnotationContainer) } } diff --git a/compiler/testData/codegen/box/compileKotlinAgainstKotlin/annotationInInterface.kt b/compiler/testData/codegen/box/compileKotlinAgainstKotlin/annotationInInterface.kt index 3fa31f3de8b..f7b4995fb69 100644 --- a/compiler/testData/codegen/box/compileKotlinAgainstKotlin/annotationInInterface.kt +++ b/compiler/testData/codegen/box/compileKotlinAgainstKotlin/annotationInInterface.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_STDLIB // WITH_REFLECT