[IR] Introduce API to register generated IR declaration to be present in metatada

KT-63881
This commit is contained in:
Dmitriy Novozhilov
2023-11-24 16:38:27 +02:00
parent 1cdc8361d6
commit 159bc1b435
6 changed files with 340 additions and 132 deletions
@@ -5,7 +5,9 @@
package org.jetbrains.kotlin.backend.common.extensions
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
abstract class IrGeneratedDeclarationsRegistrar {
@@ -14,4 +16,10 @@ abstract class IrGeneratedDeclarationsRegistrar {
fun addMetadataVisibleAnnotationsToElement(declaration: IrDeclaration, vararg annotations: IrConstructorCall) {
addMetadataVisibleAnnotationsToElement(declaration, annotations.toList())
}
abstract fun registerFunctionAsMetadataVisible(irFunction: IrSimpleFunction)
abstract fun registerConstructorAsMetadataVisible(irConstructor: IrConstructor)
// TODO: KT-63881
// abstract fun registerPropertyAsMetadataVisible(irProperty: IrProperty)
}
@@ -186,5 +186,10 @@ open class IrPluginContextImpl constructor(
override fun addMetadataVisibleAnnotationsToElement(declaration: IrDeclaration, annotations: List<IrConstructorCall>) {
declaration.annotations += annotations
}
override fun registerFunctionAsMetadataVisible(irFunction: IrSimpleFunction) {}
override fun registerConstructorAsMetadataVisible(irConstructor: IrConstructor) {}
}
}