[IR] Mark IrAnonymousInitializerImpl with an opt-in annotation

KT-59318
This commit is contained in:
Sergej Jaskiewicz
2023-12-07 15:45:10 +01:00
committed by Space Team
parent 22709bcb18
commit 8aacb59aec
5 changed files with 23 additions and 7 deletions
@@ -0,0 +1,17 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.ir
import org.jetbrains.kotlin.ir.declarations.IrFactory
/**
* IR implementation classes annotated with this annotation are not expected to be used directly.
*
* [IrFactory] should be the preferred way to create instances of such classes.
*/
@RequiresOptIn("Use IrFactory instead of creating IR nodes directly", level = RequiresOptIn.Level.ERROR)
@Target(AnnotationTarget.CONSTRUCTOR)
annotation class IrImplementationDetail
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.ir.declarations.impl
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.ir.IrImplementationDetail
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.IrAnonymousInitializer
import org.jetbrains.kotlin.ir.declarations.IrFactory
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBlockBody
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol
class IrAnonymousInitializerImpl(
class IrAnonymousInitializerImpl @IrImplementationDetail constructor(
override val startOffset: Int,
override val endOffset: Int,
override var origin: IrDeclarationOrigin,
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.ir.declarations.impl
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.IrImplementationDetail
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
import org.jetbrains.kotlin.ir.expressions.IrExpression
@@ -23,6 +23,7 @@ object IrFactoryImpl : AbstractIrFactoryImpl() {
override val stageController: StageController = StageController()
}
@OptIn(IrImplementationDetail::class)
abstract class AbstractIrFactoryImpl : IrFactory {
override fun createAnonymousInitializer(