[IR] Rename IrAnnotationsFromPluginRegistrar to IrGeneratedDeclarationsRegistrar

In further commits, this service will be used not only for registering
  annotations, but newly generated IR declarations too
This commit is contained in:
Dmitriy Novozhilov
2023-11-24 15:20:37 +02:00
parent 751defc812
commit 1cdc8361d6
19 changed files with 33 additions and 30 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.backend.common.extensions
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
abstract class IrAnnotationsFromPluginRegistrar {
abstract class IrGeneratedDeclarationsRegistrar {
abstract fun addMetadataVisibleAnnotationsToElement(declaration: IrDeclaration, annotations: List<IrConstructorCall>)
fun addMetadataVisibleAnnotationsToElement(declaration: IrDeclaration, vararg annotations: IrConstructorCall) {
@@ -57,10 +57,12 @@ interface IrPluginContext : IrGeneratorContext {
val platform: TargetPlatform?
/**
* Use this service to add annotations to declarations if those annotations should be saved into metadata
* Use this service to:
* - add annotations to declarations if those annotations should be saved into metadata
* - register that declaration generated at IR stage will appear in compiled metadata
* This service properly works only in K2 compiler
*/
val annotationsRegistrar: IrAnnotationsFromPluginRegistrar
val metadataDeclarationRegistrar: IrGeneratedDeclarationsRegistrar
/**
* Returns a logger instance to post diagnostic messages from plugin
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.ir.IrBuiltIns
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.IrConstructor
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.linkage.IrDeserializer
import org.jetbrains.kotlin.ir.symbols.*
@@ -53,8 +54,8 @@ open class IrPluginContextImpl constructor(
override val symbolTable: ReferenceSymbolTable = st
final override val annotationsRegistrar: IrAnnotationsFromPluginRegistrar
get() = DummyIrAnnotationsFromPluginRegistrar
final override val metadataDeclarationRegistrar: IrGeneratedDeclarationsRegistrar
get() = DummyIrGeneratedDeclarationsRegistrar
private fun resolveMemberScope(fqName: FqName): MemberScope? {
val pkg = module.getPackage(fqName)
@@ -181,7 +182,7 @@ open class IrPluginContextImpl constructor(
return symbol
}
private object DummyIrAnnotationsFromPluginRegistrar : IrAnnotationsFromPluginRegistrar() {
private object DummyIrGeneratedDeclarationsRegistrar : IrGeneratedDeclarationsRegistrar() {
override fun addMetadataVisibleAnnotationsToElement(declaration: IrDeclaration, annotations: List<IrConstructorCall>) {
declaration.annotations += annotations
}