diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 28bbaa403fb..375eb97435f 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -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, diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt index f81e77107a9..1bcd8a1aa20 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt @@ -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 diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmFileFacadeClass.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmFileFacadeClass.kt index 2962b86d15f..2c7ef5896df 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmFileFacadeClass.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmFileFacadeClass.kt @@ -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, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt index 336f20fe2a1..e7251be6632 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt @@ -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, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrErrorClassImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrErrorClassImpl.kt index 1e8daa404a3..ad29d680ca2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrErrorClassImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrErrorClassImpl.kt @@ -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(""), ClassKind.CLASS, DescriptorVisibilities.DEFAULT_VISIBILITY, Modality.FINAL diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index da2e58796fc..7c2c74cbf88 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -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() diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index 3840faa8e22..ed812f86b1d 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -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, 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()