[IR] Fix removal-of-abstract-fun IR linkage case

^KT-50771
This commit is contained in:
Dmitriy Dolovov
2022-04-27 20:15:55 +03:00
parent deb9039b0f
commit 8de4eb798c
3 changed files with 218 additions and 48 deletions
@@ -24,8 +24,13 @@ import org.jetbrains.kotlin.name.Name
inline fun <reified T : IrElement> T.deepCopyWithSymbols(
initialParent: IrDeclarationParent? = null,
createCopier: (SymbolRemapper, TypeRemapper) -> DeepCopyIrTreeWithSymbols = ::DeepCopyIrTreeWithSymbols
): T = deepCopyWithSymbols(initialParent, DeepCopySymbolRemapper(), createCopier)
inline fun <reified T : IrElement> T.deepCopyWithSymbols(
initialParent: IrDeclarationParent?,
symbolRemapper: DeepCopySymbolRemapper,
createCopier: (SymbolRemapper, TypeRemapper) -> DeepCopyIrTreeWithSymbols = ::DeepCopyIrTreeWithSymbols
): T {
val symbolRemapper = DeepCopySymbolRemapper()
acceptVoid(symbolRemapper)
val typeRemapper = DeepCopyTypeRemapper(symbolRemapper)
return transform(createCopier(symbolRemapper, typeRemapper), null).patchDeclarationParents(initialParent) as T