diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt index 90e7a44b2c9..6bfdd4fc1e2 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt @@ -72,8 +72,11 @@ class Fir2IrLazySimpleFunction( override val name: Name get() = fir.name - override val visibility: Visibility + override var visibility: Visibility get() = fir.visibility + set(_) { + error("Mutating Fir2Ir lazy elements is not possible") + } override val modality: Modality get() = fir.modality!! diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt index 348ad0f5424..0c1f34e5b3c 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.ir.builders.irReturn import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.defaultType @@ -97,7 +96,7 @@ private class ToArrayLowering(private val context: JvmBackendContext) : ClassLow } private fun IrClass.findOrCreate(indirectSubclass: Boolean, matcher: (IrSimpleFunction) -> Boolean, fallback: () -> IrSimpleFunction) { - val existing = functions.find(matcher) as? IrFunctionImpl + val existing = functions.find(matcher) if (existing != null) { // This is an explicit override of a method defined in `kotlin.collections.AbstractCollection` // or `java.util.Collection`. From here on, the frontend will check the existence of implementations; diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt index e77404781ef..11f0b8bff56 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt @@ -16,7 +16,10 @@ package org.jetbrains.kotlin.ir.declarations -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType @@ -28,8 +31,6 @@ interface IrClass : @ObsoleteDescriptorBasedAPI override val descriptor: ClassDescriptor - override var visibility: Visibility - val kind: ClassKind var modality: Modality val isCompanion: Boolean @@ -54,16 +55,3 @@ fun IrClass.addMember(member: IrDeclaration) { fun IrClass.addAll(members: List) { declarations.addAll(members) } - -fun IrClass.getInstanceInitializerMembers() = - declarations.filter { - when (it) { - is IrAnonymousInitializer -> - true - is IrProperty -> - it.backingField?.initializer != null - is IrField -> - it.initializer != null - else -> false - } - } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt index 16df356e0f9..a5c93c63f69 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrConstructor.kt @@ -17,17 +17,12 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor -import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol - interface IrConstructor : IrFunction, IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI override val descriptor: ClassConstructorDescriptor - override var visibility: Visibility - val isPrimary: Boolean } - diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrDeclaration.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrDeclaration.kt index 25b13304e93..9c13df2d4a4 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrDeclaration.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrDeclaration.kt @@ -55,7 +55,7 @@ interface IrOverridableDeclaration : IrDeclaration { } interface IrDeclarationWithVisibility : IrDeclaration { - val visibility: Visibility + var visibility: Visibility } interface IrDeclarationWithName : IrDeclaration { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt index 49edc85ef76..dc9c1f4b20a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt @@ -38,7 +38,7 @@ class IrFieldImpl( override val symbol: IrFieldSymbol, override val name: Name, override val type: IrType, - override val visibility: Visibility, + override var visibility: Visibility, override val isFinal: Boolean, override val isExternal: Boolean, override val isStatic: Boolean diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt index 3b8e6808b58..f5a83c2139e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt @@ -33,7 +33,7 @@ abstract class IrPropertyCommonImpl( endOffset: Int, origin: IrDeclarationOrigin, override val name: Name, - override val visibility: Visibility, + override var visibility: Visibility, override val modality: Modality, override val isVar: Boolean, override val isConst: Boolean, @@ -113,7 +113,7 @@ class IrPropertyImpl( origin: IrDeclarationOrigin, override val symbol: IrPropertySymbol, override val name: Name, - override val visibility: Visibility, + override var visibility: Visibility, override val modality: Modality, override val isVar: Boolean, override val isConst: Boolean, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt index 36e0ae22d07..87ddd368656 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt @@ -24,7 +24,7 @@ class IrTypeAliasImpl( endOffset: Int, override val symbol: IrTypeAliasSymbol, override val name: Name, - override val visibility: Visibility, + override var visibility: Visibility, override val expandedType: IrType, override val isActual: Boolean, origin: IrDeclarationOrigin diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt index 4d49e1744b6..bb0403d5c31 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyField.kt @@ -32,7 +32,7 @@ class IrLazyField( override val symbol: IrFieldSymbol, override val descriptor: PropertyDescriptor, override val name: Name, - override val visibility: Visibility, + override var visibility: Visibility, override val isFinal: Boolean, override val isExternal: Boolean, override val isStatic: Boolean, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt index a95d303427d..286534c46c2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyProperty.kt @@ -27,7 +27,7 @@ class IrLazyProperty( override val symbol: IrPropertySymbol, override val descriptor: PropertyDescriptor, override val name: Name, - override val visibility: Visibility, + override var visibility: Visibility, override val modality: Modality, override val isVar: Boolean, override val isConst: Boolean, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt index b9b10f4935d..89d5aee9d7c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeAlias.kt @@ -29,7 +29,7 @@ class IrLazyTypeAlias( override val symbol: IrTypeAliasSymbol, override val descriptor: TypeAliasDescriptor, override val name: Name, - override val visibility: Visibility, + override var visibility: Visibility, override val isActual: Boolean, stubGenerator: DeclarationStubGenerator, typeTranslator: TypeTranslator