[IR] Mark IrClassImpl with an opt-in annotation
KT-59318
This commit is contained in:
committed by
Space Team
parent
8aacb59aec
commit
2fab853700
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.ir.IrImplementationDetail
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -229,6 +230,7 @@ class Fir2IrDeclarationStorage(
|
||||
return fileCache[firFile]!!
|
||||
}
|
||||
|
||||
@OptIn(IrImplementationDetail::class)
|
||||
internal class NonCachedSourceFileFacadeClass(
|
||||
origin: IrDeclarationOrigin,
|
||||
name: Name,
|
||||
|
||||
+7
-7
@@ -31,7 +31,6 @@ import org.jetbrains.kotlin.fileClasses.JvmMultifileClassPartInfo
|
||||
import org.jetbrains.kotlin.fileClasses.JvmSimpleFileClassInfo
|
||||
import org.jetbrains.kotlin.ir.PsiIrFileEntry
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConst
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
@@ -98,17 +97,18 @@ private class FileClassLowering(val context: JvmBackendContext) : FileLoweringPa
|
||||
IrDeclarationOrigin.FILE_CLASS
|
||||
else
|
||||
IrDeclarationOrigin.SYNTHETIC_FILE_CLASS
|
||||
return IrClassImpl(
|
||||
0, fileEntry.maxOffset,
|
||||
fileClassOrigin,
|
||||
symbol = IrClassSymbolImpl(),
|
||||
return context.irFactory.createClass(
|
||||
startOffset = 0,
|
||||
endOffset = fileEntry.maxOffset,
|
||||
origin = fileClassOrigin,
|
||||
name = fileClassInfo.fileClassFqName.shortName(),
|
||||
kind = ClassKind.CLASS,
|
||||
visibility = if (isMultifilePart || onlyPrivateDeclarationsAndFeatureIsEnabled)
|
||||
JavaDescriptorVisibilities.PACKAGE_VISIBILITY
|
||||
else
|
||||
DescriptorVisibilities.PUBLIC,
|
||||
modality = Modality.FINAL
|
||||
symbol = IrClassSymbolImpl(),
|
||||
kind = ClassKind.CLASS,
|
||||
modality = Modality.FINAL,
|
||||
).apply {
|
||||
superTypes = listOf(context.irBuiltIns.anyType)
|
||||
parent = irFile
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.ir.IrImplementationDetail
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
@@ -14,6 +15,7 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.util.DeserializableClass
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@OptIn(IrImplementationDetail::class)
|
||||
class JvmFileFacadeClass(
|
||||
origin: IrDeclarationOrigin,
|
||||
name: Name,
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.ir.declarations.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.ir.IrImplementationDetail
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
open class IrClassImpl(
|
||||
open class IrClassImpl @IrImplementationDetail constructor(
|
||||
override val startOffset: Int,
|
||||
override val endOffset: Int,
|
||||
override var origin: IrDeclarationOrigin,
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.types.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.ir.IrFileEntry
|
||||
import org.jetbrains.kotlin.ir.IrImplementationDetail
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -19,6 +20,8 @@ import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.shouldNotBeCalled
|
||||
|
||||
|
||||
@OptIn(IrImplementationDetail::class)
|
||||
object IrErrorClassImpl : IrClassImpl(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.ERROR_CLASS, IrClassSymbolImpl(),
|
||||
Name.special("<error>"), ClassKind.CLASS, DescriptorVisibilities.DEFAULT_VISIBILITY, Modality.FINAL
|
||||
|
||||
+8
-6
@@ -1114,13 +1114,15 @@ private class ObjCBlockPointerValuePassing(
|
||||
private fun IrBuilderWithScope.generateKotlinFunctionClass(): IrConstructor {
|
||||
val symbols = stubs.symbols
|
||||
|
||||
val irClass = IrClassImpl(
|
||||
startOffset, endOffset,
|
||||
OBJC_BLOCK_FUNCTION_IMPL, IrClassSymbolImpl(),
|
||||
val irClass = context.irFactory.createClass(
|
||||
startOffset,
|
||||
endOffset,
|
||||
OBJC_BLOCK_FUNCTION_IMPL,
|
||||
Name.identifier(stubs.getUniqueKotlinFunctionReferenceClassName("BlockFunctionImpl")),
|
||||
ClassKind.CLASS, DescriptorVisibilities.PRIVATE, Modality.FINAL,
|
||||
isCompanion = false, isInner = false, isData = false, isExternal = false,
|
||||
isValue = false, isExpect = false, isFun = false
|
||||
DescriptorVisibilities.PRIVATE,
|
||||
IrClassSymbolImpl(),
|
||||
ClassKind.CLASS,
|
||||
Modality.FINAL,
|
||||
)
|
||||
irClass.createParameterDeclarations()
|
||||
|
||||
|
||||
+5
-15
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.builders.*
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.buildField
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
@@ -34,15 +33,12 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.types.*
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.ir.util.SetDeclarationsParentVisitor
|
||||
import org.jetbrains.kotlin.ir.util.addChild
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
|
||||
internal class TestProcessor (val context: Context) {
|
||||
companion object {
|
||||
@@ -479,21 +475,15 @@ internal class TestProcessor (val context: Context) {
|
||||
functions: Collection<TestFunction>,
|
||||
irFile: IrFile
|
||||
): IrClass {
|
||||
return IrClassImpl(
|
||||
testClass.startOffset, testClass.endOffset,
|
||||
return context.irFactory.createClass(
|
||||
testClass.startOffset,
|
||||
testClass.endOffset,
|
||||
TEST_SUITE_CLASS,
|
||||
IrClassSymbolImpl(),
|
||||
testClass.name.synthesizeSuiteClassName(),
|
||||
ClassKind.CLASS,
|
||||
DescriptorVisibilities.PRIVATE,
|
||||
IrClassSymbolImpl(),
|
||||
ClassKind.CLASS,
|
||||
Modality.FINAL,
|
||||
isCompanion = false,
|
||||
isInner = false,
|
||||
isData = false,
|
||||
isExternal = false,
|
||||
isValue = false,
|
||||
isExpect = false,
|
||||
isFun = false
|
||||
).apply {
|
||||
irFile.addChild(this)
|
||||
createParameterDeclarations()
|
||||
|
||||
Reference in New Issue
Block a user