diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt index 50785bc6d9e..9952d8ebe02 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.scopes.MemberScope +// TODO: Make IrPluginContext be interface open class IrPluginContext( @Deprecated("FrontEnd API shouldn't be accessed in Ir plugin environment") val moduleDescriptor: ModuleDescriptor, @@ -58,8 +59,8 @@ open class IrPluginContext( if (symbol.isBound) return symbol linker.getDeclaration(symbol) - // TODO: post process -// linker. + linker.postProcess() + return symbol } @@ -70,8 +71,8 @@ open class IrPluginContext( symbols.forEach { if (!it.isBound) linker.getDeclaration(it) } - // TODO: post process -// linker. + linker.postProcess() + return symbols } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt index 83a4d49d3aa..920c99f4242 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt @@ -49,6 +49,7 @@ interface LazyIrProvider : IrProvider { interface IrDeserializer : IrProvider { fun init(moduleFragment: IrModuleFragment?) {} + fun postProcess() {} } interface ReferenceSymbolTable { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 6243c186d7d..709f02d8d7c 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -537,7 +537,7 @@ abstract class KotlinIrLinker( deserializersForModules.values.forEach { it.init() } } - fun postProcess() { + override fun postProcess() { deserializersForModules.values.forEach { it.postProcess() } finalizeExpectActualLinker() }