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