[IR] Mark IrAnonymousInitializerImpl with an opt-in annotation
KT-59318
This commit is contained in:
committed by
Space Team
parent
22709bcb18
commit
8aacb59aec
@@ -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
|
||||
+2
-1
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user