diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt index 5b568e2eaf4..cf45e0bd4a3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt @@ -1031,13 +1031,10 @@ private fun IrTypeParameter.copySuperTypesFrom(source: IrTypeParameter, srcToDst } } -fun IrAnnotationContainer.copyAnnotations(): List { - return annotations.memoryOptimizedMap { it.deepCopyWithSymbols(this as? IrDeclarationParent) } -} - -fun IrAnnotationContainer.copyAnnotationsWhen(filter: IrConstructorCall.() -> Boolean): List { - return annotations.mapNotNull { if (it.filter()) it.deepCopyWithSymbols(this as? IrDeclarationParent) else null } -} +fun IrAnnotationContainer.copyAnnotations(): List = + annotations.memoryOptimizedMap { + it.transform(DeepCopyIrTreeWithSymbols(SymbolRemapper.EMPTY), null) as IrConstructorCall + } fun IrMutableAnnotationContainer.copyAnnotationsFrom(source: IrAnnotationContainer) { annotations = annotations memoryOptimizedPlus source.copyAnnotations() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt index a2763a0f36f..89e06523684 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt @@ -110,4 +110,7 @@ interface SymbolRemapper { override fun getReferencedTypeAlias(symbol: IrTypeAliasSymbol): IrTypeAliasSymbol = symbol } -} \ No newline at end of file + companion object { + val EMPTY: SymbolRemapper = Empty() + } +}