From 771e7574f4edfe59e425f914bf56b65f242eea64 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 22 Jul 2020 14:09:30 +0200 Subject: [PATCH] IR: make subtypes of IrDeclaration classes --- .../kotlin/fir/lazy/Fir2IrLazyClass.kt | 2 +- .../kotlin/fir/lazy/Fir2IrLazyConstructor.kt | 2 +- .../kotlin/fir/lazy/Fir2IrLazyProperty.kt | 2 +- .../fir/lazy/Fir2IrLazySimpleFunction.kt | 2 +- .../impl/IrAnonymousInitializerImpl.kt | 2 +- .../ir/declarations/impl/IrClassImpl.kt | 2 +- .../ir/declarations/impl/IrConstructorImpl.kt | 2 +- .../ir/declarations/impl/IrEnumEntryImpl.kt | 2 +- .../impl/IrErrorDeclarationImpl.kt | 2 +- .../ir/declarations/impl/IrFieldImpl.kt | 2 +- .../ir/declarations/impl/IrFunctionImpl.kt | 2 +- .../impl/IrLocalDelegatedPropertyImpl.kt | 2 +- .../ir/declarations/impl/IrPropertyImpl.kt | 2 +- .../ir/declarations/impl/IrTypeAliasImpl.kt | 2 +- .../declarations/impl/IrTypeParameterImpl.kt | 2 +- .../declarations/impl/IrValueParameterImpl.kt | 2 +- .../PersistentIrAnonymousInitializer.kt | 4 +-- .../persistent/PersistentIrClass.kt | 3 +- .../persistent/PersistentIrConstructor.kt | 3 +- .../persistent/PersistentIrEnumEntry.kt | 4 +-- .../PersistentIrErrorDeclaration.kt | 2 +- .../persistent/PersistentIrField.kt | 4 +-- .../persistent/PersistentIrFunction.kt | 3 +- .../PersistentIrLocalDelegatedProperty.kt | 2 +- .../persistent/PersistentIrProperty.kt | 4 +-- .../persistent/PersistentIrTypeAlias.kt | 3 +- .../persistent/PersistentIrTypeParameter.kt | 3 +- .../persistent/PersistentIrValueParameter.kt | 3 +- .../ir/declarations/IrAnonymousInitializer.kt | 9 +++--- .../kotlin/ir/declarations/IrClass.kt | 28 +++++++++---------- .../kotlin/ir/declarations/IrConstructor.kt | 6 ++-- .../kotlin/ir/declarations/IrEnumEntry.kt | 8 +++--- .../ir/declarations/IrErrorDeclaration.kt | 2 +- .../kotlin/ir/declarations/IrField.kt | 16 +++++------ .../kotlin/ir/declarations/IrFunction.kt | 22 +++++++-------- .../declarations/IrLocalDelegatedProperty.kt | 16 +++++------ .../kotlin/ir/declarations/IrProperty.kt | 26 ++++++++--------- .../kotlin/ir/declarations/IrScript.kt | 6 ++-- .../ir/declarations/IrSimpleFunction.kt | 16 +++++------ .../kotlin/ir/declarations/IrTypeAlias.kt | 8 +++--- .../kotlin/ir/declarations/IrTypeParameter.kt | 12 ++++---- .../ir/declarations/IrValueDeclaration.kt | 10 +++---- .../ir/declarations/IrValueParameter.kt | 14 +++++----- .../kotlin/ir/declarations/IrVariable.kt | 13 ++++----- .../ir/declarations/impl/IrScriptImpl.kt | 5 ++-- .../ir/declarations/impl/IrVariableImpl.kt | 6 ++-- .../ir/declarations/lazy/IrLazyClass.kt | 2 +- .../ir/declarations/lazy/IrLazyConstructor.kt | 2 +- .../declarations/lazy/IrLazyEnumEntryImpl.kt | 2 +- .../ir/declarations/lazy/IrLazyField.kt | 2 +- .../ir/declarations/lazy/IrLazyFunction.kt | 2 +- .../ir/declarations/lazy/IrLazyProperty.kt | 2 +- .../ir/declarations/lazy/IrLazyTypeAlias.kt | 2 +- .../declarations/lazy/IrLazyTypeParameter.kt | 2 +- 54 files changed, 152 insertions(+), 157 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index 851c8bd34c9..db3c29446a8 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -31,7 +31,7 @@ class Fir2IrLazyClass( override var origin: IrDeclarationOrigin, override val fir: FirRegularClass, override val symbol: Fir2IrClassSymbol, -) : IrClass, AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { +) : IrClass(), AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { init { symbol.bind(this) classifierStorage.preCacheTypeParameters(fir) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt index 6fd373df117..1ccabb3a3e6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyConstructor.kt @@ -29,7 +29,7 @@ class Fir2IrLazyConstructor( override var origin: IrDeclarationOrigin, override val fir: FirConstructor, override val symbol: Fir2IrConstructorSymbol, -) : IrConstructor, AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { +) : IrConstructor(), AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { init { symbol.bind(this) classifierStorage.preCacheTypeParameters(fir) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index 67ea89fcea7..f737e2c83b9 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -32,7 +32,7 @@ class Fir2IrLazyProperty( override val fir: FirProperty, override val symbol: Fir2IrPropertySymbol, override val isFakeOverride: Boolean -) : IrProperty, AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { +) : IrProperty(), AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { init { symbol.bind(this) classifierStorage.preCacheTypeParameters(fir) 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 a499711187c..461d24b3bfa 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 @@ -33,7 +33,7 @@ class Fir2IrLazySimpleFunction( firParent: FirRegularClass, override val symbol: Fir2IrSimpleFunctionSymbol, override val isFakeOverride: Boolean -) : IrSimpleFunction, AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { +) : IrSimpleFunction(), AbstractFir2IrLazyDeclaration, Fir2IrComponents by components { init { symbol.bind(this) classifierStorage.preCacheTypeParameters(fir) diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt index 55e2aaf614a..94e340d9fc2 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt @@ -32,7 +32,7 @@ class IrAnonymousInitializerImpl( override var origin: IrDeclarationOrigin, override val symbol: IrAnonymousInitializerSymbol, override val isStatic: Boolean = false -) : IrAnonymousInitializer { +) : IrAnonymousInitializer() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt index 72b65d1d20e..65ed380aab0 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt @@ -41,7 +41,7 @@ class IrClassImpl( override val isExpect: Boolean = false, override val isFun: Boolean = false, override val source: SourceElement = SourceElement.NO_SOURCE -) : IrClass { +) : IrClass() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt index e08d7249be8..aa3f8c7a30f 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt @@ -38,7 +38,7 @@ class IrConstructorImpl( override val isExternal: Boolean, override val isPrimary: Boolean, override val isExpect: Boolean, -) : IrConstructor { +) : IrConstructor() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt index e7f75f4eb35..76504e68280 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt @@ -30,7 +30,7 @@ class IrEnumEntryImpl( override var origin: IrDeclarationOrigin, override val symbol: IrEnumEntrySymbol, override val name: Name -) : IrEnumEntry { +) : IrEnumEntry() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt index 30bcdc17b91..7689b17e41b 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt @@ -29,7 +29,7 @@ class IrErrorDeclarationImpl( override val startOffset: Int, override val endOffset: Int, override val descriptor: DeclarationDescriptor -) : IrErrorDeclaration { +) : IrErrorDeclaration() { override var origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED override val factory: IrFactory diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt index 5f77315d4bf..f5f947a2b28 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt @@ -38,7 +38,7 @@ class IrFieldImpl( override val isFinal: Boolean, override val isExternal: Boolean, override val isStatic: Boolean, -) : IrField { +) : IrField() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt index 6ff452a2fe0..f06148db751 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt @@ -32,7 +32,7 @@ abstract class IrFunctionCommonImpl( override val isOperator: Boolean, override val isInfix: Boolean, override val isExpect: Boolean, -) : IrSimpleFunction { +) : IrSimpleFunction() { override val factory: IrFactory get() = IrFactoryImpl diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt index 239f6ed3634..6fd07670734 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt @@ -32,7 +32,7 @@ class IrLocalDelegatedPropertyImpl( override val name: Name, override val type: IrType, override val isVar: Boolean -) : IrLocalDelegatedProperty { +) : IrLocalDelegatedProperty() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt index 1e9105b215a..2ad8044a6ed 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt @@ -38,7 +38,7 @@ abstract class IrPropertyCommonImpl( override val isDelegated: Boolean, override val isExternal: Boolean, override val isExpect: Boolean, -) : IrProperty { +) : IrProperty() { override val factory: IrFactory get() = IrFactoryImpl diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt index 634cb65a010..4bb40cd6f32 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeAliasImpl.kt @@ -23,7 +23,7 @@ class IrTypeAliasImpl( override val expandedType: IrType, override val isActual: Boolean, override var origin: IrDeclarationOrigin -) : IrTypeAlias { +) : IrTypeAlias() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt index 48ccbecc4bb..c18c62ea380 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt @@ -38,7 +38,7 @@ class IrTypeParameterImpl( override val index: Int, override val isReified: Boolean, override val variance: Variance -) : IrTypeParameter { +) : IrTypeParameter() { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt index e943371b993..493ea69a2b9 100644 --- a/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt +++ b/compiler/ir/ir.tree.impl/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt @@ -39,7 +39,7 @@ class IrValueParameterImpl( override val varargElementType: IrType?, override val isCrossinline: Boolean, override val isNoinline: Boolean -) : IrValueParameter { +) : IrValueParameter() { @ObsoleteDescriptorBasedAPI override val descriptor: ParameterDescriptor get() = symbol.descriptor diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt index f5bfd4a1337..e724238189f 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt @@ -34,8 +34,8 @@ internal class PersistentIrAnonymousInitializer( origin: IrDeclarationOrigin, override val symbol: IrAnonymousInitializerSymbol, override val isStatic: Boolean = false -) : PersistentIrDeclarationBase, - IrAnonymousInitializer, +) : IrAnonymousInitializer(), + PersistentIrDeclarationBase, AnonymousInitializerCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt index ec6a3bf2b96..5ccd9acd8bb 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt @@ -44,9 +44,8 @@ internal class PersistentIrClass( override val isExpect: Boolean = false, override val isFun: Boolean = false, override val source: SourceElement = SourceElement.NO_SOURCE -) : +) : IrClass(), PersistentIrDeclarationBase, - IrClass, ClassCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt index 081293efaac..b17c289ced8 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt @@ -40,9 +40,8 @@ internal class PersistentIrConstructor( override val isExternal: Boolean, override val isPrimary: Boolean, override val isExpect: Boolean -) : +) : IrConstructor(), PersistentIrDeclarationBase, - IrConstructor, ConstructorCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt index 1f08d48e294..33243e7d488 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt @@ -32,8 +32,8 @@ internal class PersistentIrEnumEntry( origin: IrDeclarationOrigin, override val symbol: IrEnumEntrySymbol, override val name: Name -) : PersistentIrDeclarationBase, - IrEnumEntry, +) : IrEnumEntry(), + PersistentIrDeclarationBase, EnumEntryCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt index b92329e3102..2864d65eb5c 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt @@ -31,7 +31,7 @@ internal class PersistentIrErrorDeclaration( override val startOffset: Int, override val endOffset: Int, override val descriptor: DeclarationDescriptor -) : PersistentIrDeclarationBase, IrErrorDeclaration, ErrorCarrier { +) : PersistentIrDeclarationBase, IrErrorDeclaration(), ErrorCarrier { override var lastModified: Int = stageController.currentStage override var loweredUpTo: Int = stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt index 9d986be3326..a8e3b9a830d 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt @@ -40,8 +40,8 @@ internal class PersistentIrField( override val isFinal: Boolean, override val isExternal: Boolean, override val isStatic: Boolean -) : PersistentIrDeclarationBase, - IrField, +) : IrField(), + PersistentIrDeclarationBase, FieldCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunction.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunction.kt index 961fbc92a6a..5ecba9a58e6 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunction.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunction.kt @@ -34,9 +34,8 @@ internal abstract class PersistentIrFunctionCommon( override val isOperator: Boolean, override val isInfix: Boolean, override val isExpect: Boolean, -) : +) : IrSimpleFunction(), PersistentIrDeclarationBase, - IrSimpleFunction, FunctionCarrier { override var lastModified: Int = stageController.currentStage diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt index 57663bf5681..3d0e54132eb 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt @@ -37,7 +37,7 @@ internal class PersistentIrLocalDelegatedProperty( override val isVar: Boolean ) : PersistentIrDeclarationBase, - IrLocalDelegatedProperty, + IrLocalDelegatedProperty(), LocalDelegatedPropertyCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrProperty.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrProperty.kt index b67b5d267bb..8ba511968b1 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrProperty.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrProperty.kt @@ -40,8 +40,8 @@ internal abstract class PersistentIrPropertyCommon( override val isDelegated: Boolean, override val isExternal: Boolean, override val isExpect: Boolean, -) : PersistentIrDeclarationBase, - IrProperty, +) : IrProperty(), + PersistentIrDeclarationBase, PropertyCarrier { override var lastModified: Int = stageController.currentStage diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt index bdbbdd11c2c..c1db7726e36 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt @@ -25,9 +25,8 @@ internal class PersistentIrTypeAlias( override val expandedType: IrType, override val isActual: Boolean, origin: IrDeclarationOrigin -) : +) : IrTypeAlias(), PersistentIrDeclarationBase, - IrTypeAlias, TypeAliasCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt index d6bf4d1c1ee..c0133964d8f 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt @@ -40,9 +40,8 @@ internal class PersistentIrTypeParameter( override val index: Int, override val isReified: Boolean, override val variance: Variance -) : +) : IrTypeParameter(), PersistentIrDeclarationBase, - IrTypeParameter, TypeParameterCarrier { init { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt index 1e5aa4b2496..7746e667b33 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt @@ -41,9 +41,8 @@ internal class PersistentIrValueParameter( override val varargElementType: IrType?, override val isCrossinline: Boolean, override val isNoinline: Boolean -) : +) : IrValueParameter(), PersistentIrDeclarationBase, - IrValueParameter, ValueParameterCarrier { @ObsoleteDescriptorBasedAPI diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt index 0a89f274e22..f60cd81f169 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrAnonymousInitializer.kt @@ -23,12 +23,13 @@ import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrAnonymousInitializer : IrSymbolDeclaration { +abstract class IrAnonymousInitializer : IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI - override val descriptor: ClassDescriptor // TODO special descriptor for anonymous initializer blocks - val isStatic: Boolean + abstract override val descriptor: ClassDescriptor // TODO special descriptor for anonymous initializer blocks - var body: IrBlockBody + abstract val isStatic: Boolean + + abstract var body: IrBlockBody override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitAnonymousInitializer(this, data) 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 d8b02d4d78b..b9eb2f04b6e 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 @@ -28,28 +28,28 @@ import org.jetbrains.kotlin.ir.util.transformIfNeeded import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrClass : +abstract class IrClass : IrSymbolDeclaration, IrDeclarationWithName, IrDeclarationWithVisibility, IrDeclarationContainer, IrTypeParametersContainer, IrAttributeContainer, IrMetadataSourceOwner { @ObsoleteDescriptorBasedAPI - override val descriptor: ClassDescriptor + abstract override val descriptor: ClassDescriptor - val kind: ClassKind - var modality: Modality - val isCompanion: Boolean - val isInner: Boolean - val isData: Boolean - val isExternal: Boolean - val isInline: Boolean - val isExpect: Boolean - val isFun: Boolean + abstract val kind: ClassKind + abstract var modality: Modality + abstract val isCompanion: Boolean + abstract val isInner: Boolean + abstract val isData: Boolean + abstract val isExternal: Boolean + abstract val isInline: Boolean + abstract val isExpect: Boolean + abstract val isFun: Boolean - val source: SourceElement + abstract val source: SourceElement - var superTypes: List + abstract var superTypes: List - var thisReceiver: IrValueParameter? + abstract var thisReceiver: IrValueParameter? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitClass(this, data) 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 b16c0d2325a..0d07f928444 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 @@ -21,11 +21,11 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrConstructor : IrFunction, IrSymbolDeclaration { +abstract class IrConstructor : IrFunction(), IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI - override val descriptor: ClassConstructorDescriptor + abstract override val descriptor: ClassConstructorDescriptor - val isPrimary: Boolean + abstract val isPrimary: Boolean override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitConstructor(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt index 1f6194d85fe..3cd35d51a6f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt @@ -23,12 +23,12 @@ import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrEnumEntry : IrSymbolDeclaration, IrDeclarationWithName { +abstract class IrEnumEntry : IrSymbolDeclaration, IrDeclarationWithName { @ObsoleteDescriptorBasedAPI - override val descriptor: ClassDescriptor + abstract override val descriptor: ClassDescriptor - var correspondingClass: IrClass? - var initializerExpression: IrExpressionBody? + abstract var correspondingClass: IrClass? + abstract var initializerExpression: IrExpressionBody? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitEnumEntry(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt index 24fac560699..e8966ea1ba6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrErrorDeclaration.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrErrorDeclaration : IrDeclaration { +abstract class IrErrorDeclaration : IrDeclaration { override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitErrorDeclaration(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt index d70f4578c14..4a762b44c6d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt @@ -14,21 +14,21 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrField : +abstract class IrField : IrSymbolDeclaration, IrDeclarationWithName, IrDeclarationWithVisibility, IrDeclarationParent, IrMetadataSourceOwner { @ObsoleteDescriptorBasedAPI - override val descriptor: PropertyDescriptor + abstract override val descriptor: PropertyDescriptor - val type: IrType - val isFinal: Boolean - val isExternal: Boolean - val isStatic: Boolean + abstract val type: IrType + abstract val isFinal: Boolean + abstract val isExternal: Boolean + abstract val isStatic: Boolean - var initializer: IrExpressionBody? + abstract var initializer: IrExpressionBody? - var correspondingPropertySymbol: IrPropertySymbol? + abstract var correspondingPropertySymbol: IrPropertySymbol? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitField(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt index 655d5281193..6b011116ca3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt @@ -27,25 +27,25 @@ import org.jetbrains.kotlin.ir.util.transformIfNeeded import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrFunction : +abstract class IrFunction : IrDeclarationWithName, IrDeclarationWithVisibility, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent, IrReturnTarget, IrMetadataSourceOwner { @ObsoleteDescriptorBasedAPI - override val descriptor: FunctionDescriptor - override val symbol: IrFunctionSymbol + abstract override val descriptor: FunctionDescriptor + abstract override val symbol: IrFunctionSymbol - val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class - val isExternal: Boolean - val isExpect: Boolean + abstract val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class + abstract val isExternal: Boolean + abstract val isExpect: Boolean - var returnType: IrType + abstract var returnType: IrType - var dispatchReceiverParameter: IrValueParameter? - var extensionReceiverParameter: IrValueParameter? - var valueParameters: List + abstract var dispatchReceiverParameter: IrValueParameter? + abstract var extensionReceiverParameter: IrValueParameter? + abstract var valueParameters: List - var body: IrBody? + abstract var body: IrBody? override fun acceptChildren(visitor: IrElementVisitor, data: D) { typeParameters.forEach { it.accept(visitor, data) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt index cf769469f78..a2cf1b3e78d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrLocalDelegatedProperty.kt @@ -23,21 +23,21 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrLocalDelegatedProperty : +abstract class IrLocalDelegatedProperty : IrDeclarationWithName, IrSymbolOwner, IrMetadataSourceOwner { @ObsoleteDescriptorBasedAPI - override val descriptor: VariableDescriptorWithAccessors - override val symbol: IrLocalDelegatedPropertySymbol + abstract override val descriptor: VariableDescriptorWithAccessors + abstract override val symbol: IrLocalDelegatedPropertySymbol - val type: IrType - val isVar: Boolean + abstract val type: IrType + abstract val isVar: Boolean - var delegate: IrVariable - var getter: IrFunction - var setter: IrFunction? + abstract var delegate: IrVariable + abstract var getter: IrFunction + abstract var setter: IrFunction? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitLocalDelegatedProperty(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt index 5ed24f31a4c..6689ea0ec59 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt @@ -22,22 +22,22 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrProperty : IrOverridableMember, IrMetadataSourceOwner { +abstract class IrProperty : IrOverridableMember, IrMetadataSourceOwner { @ObsoleteDescriptorBasedAPI - override val descriptor: PropertyDescriptor - override val symbol: IrPropertySymbol + abstract override val descriptor: PropertyDescriptor + abstract override val symbol: IrPropertySymbol - val isVar: Boolean - val isConst: Boolean - val isLateinit: Boolean - val isDelegated: Boolean - val isExternal: Boolean - val isExpect: Boolean - val isFakeOverride: Boolean + abstract val isVar: Boolean + abstract val isConst: Boolean + abstract val isLateinit: Boolean + abstract val isDelegated: Boolean + abstract val isExternal: Boolean + abstract val isExpect: Boolean + abstract val isFakeOverride: Boolean - var backingField: IrField? - var getter: IrSimpleFunction? - var setter: IrSimpleFunction? + abstract var backingField: IrField? + abstract var getter: IrSimpleFunction? + abstract var setter: IrSimpleFunction? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitProperty(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt index f24b333c717..6591891490e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrScript.kt @@ -10,9 +10,9 @@ import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol //TODO: make IrScript as IrPackageFragment, because script is used as a file, not as a class //NOTE: declarations and statements stored separately -interface IrScript : IrSymbolDeclaration, IrDeclarationContainer, IrDeclarationWithName, IrDeclarationParent { - val statements: MutableList +abstract class IrScript : IrSymbolDeclaration, IrDeclarationContainer, IrDeclarationWithName, IrDeclarationParent { + abstract val statements: MutableList // NOTE: is the result of the FE conversion, because there script interpreted as a class and has receiver - var thisReceiver: IrValueParameter + abstract var thisReceiver: IrValueParameter } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt index f0dd6a7aaf2..6a41b6e6eec 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt @@ -9,20 +9,20 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrSimpleFunction : - IrFunction, +abstract class IrSimpleFunction : + IrFunction(), IrSymbolDeclaration, IrOverridableDeclaration, IrOverridableMember, IrAttributeContainer { - val isTailrec: Boolean - val isSuspend: Boolean - val isFakeOverride: Boolean - val isOperator: Boolean - val isInfix: Boolean + abstract val isTailrec: Boolean + abstract val isSuspend: Boolean + abstract val isFakeOverride: Boolean + abstract val isOperator: Boolean + abstract val isInfix: Boolean - var correspondingPropertySymbol: IrPropertySymbol? + abstract var correspondingPropertySymbol: IrPropertySymbol? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitSimpleFunction(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt index 3c13b32ec27..392575f0687 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeAlias.kt @@ -13,17 +13,17 @@ import org.jetbrains.kotlin.ir.util.transformIfNeeded import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrTypeAlias : +abstract class IrTypeAlias : IrSymbolDeclaration, IrDeclarationWithName, IrDeclarationWithVisibility, IrTypeParametersContainer { @ObsoleteDescriptorBasedAPI - override val descriptor: TypeAliasDescriptor + abstract override val descriptor: TypeAliasDescriptor - val isActual: Boolean - val expandedType: IrType + abstract val isActual: Boolean + abstract val expandedType: IrType override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitTypeAlias(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt index 961a13e8c9f..1c610665866 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrTypeParameter.kt @@ -24,14 +24,14 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.types.Variance -interface IrTypeParameter : IrSymbolDeclaration, IrDeclarationWithName { +abstract class IrTypeParameter : IrSymbolDeclaration, IrDeclarationWithName { @ObsoleteDescriptorBasedAPI - override val descriptor: TypeParameterDescriptor + abstract override val descriptor: TypeParameterDescriptor - val variance: Variance - val index: Int - val isReified: Boolean - val superTypes: MutableList + abstract val variance: Variance + abstract val index: Int + abstract val isReified: Boolean + abstract val superTypes: MutableList override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitTypeParameter(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueDeclaration.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueDeclaration.kt index 60c710fbd6e..1b235c48e25 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueDeclaration.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueDeclaration.kt @@ -10,10 +10,10 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.symbols.IrValueSymbol import org.jetbrains.kotlin.ir.types.IrType -interface IrValueDeclaration : IrDeclarationWithName, IrSymbolOwner { +abstract class IrValueDeclaration : IrDeclarationWithName, IrSymbolOwner { @ObsoleteDescriptorBasedAPI - override val descriptor: ValueDescriptor + abstract override val descriptor: ValueDescriptor - override val symbol: IrValueSymbol - val type: IrType -} \ No newline at end of file + abstract override val symbol: IrValueSymbol + abstract val type: IrType +} diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt index 4d65eef6ccc..8e62f0db2cc 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrValueParameter.kt @@ -24,16 +24,16 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -interface IrValueParameter : IrValueDeclaration, IrSymbolDeclaration { +abstract class IrValueParameter : IrValueDeclaration(), IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI - override val descriptor: ParameterDescriptor + abstract override val descriptor: ParameterDescriptor - val index: Int - val varargElementType: IrType? - val isCrossinline: Boolean - val isNoinline: Boolean + abstract val index: Int + abstract val varargElementType: IrType? + abstract val isCrossinline: Boolean + abstract val isNoinline: Boolean - var defaultValue: IrExpressionBody? + abstract var defaultValue: IrExpressionBody? override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitValueParameter(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt index 60a0485fe98..62bf477a1cb 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrVariable.kt @@ -21,14 +21,13 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol -interface IrVariable : IrValueDeclaration, IrSymbolDeclaration { +abstract class IrVariable : IrValueDeclaration(), IrSymbolDeclaration { @ObsoleteDescriptorBasedAPI - override val descriptor: VariableDescriptor + abstract override val descriptor: VariableDescriptor - val isVar: Boolean - val isConst: Boolean - val isLateinit: Boolean + abstract val isVar: Boolean + abstract val isConst: Boolean + abstract val isLateinit: Boolean - var initializer: IrExpression? + abstract var initializer: IrExpression? } - diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt index 93856c20ca2..dbd35327cbb 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt @@ -23,7 +23,7 @@ private val SCRIPT_ORIGIN = object : IrDeclarationOriginImpl("FIELD_FOR_OBJECT_I class IrScriptImpl( override val symbol: IrScriptSymbol, override val name: Name -) : IrScript, IrDeclaration { +) : IrScript() { override val startOffset: Int get() = UNDEFINED_OFFSET override val endOffset: Int get() = UNDEFINED_OFFSET override var origin: IrDeclarationOrigin = SCRIPT_ORIGIN @@ -44,7 +44,8 @@ class IrScriptImpl( override lateinit var thisReceiver: IrValueParameter @ObsoleteDescriptorBasedAPI - override val descriptor: ScriptDescriptor = symbol.descriptor + override val descriptor: ScriptDescriptor + get() = symbol.descriptor override val factory: IrFactory get() = error("Create IrScriptImpl directly") diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt index c9b7032c08b..fbd5b9bf612 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt @@ -40,8 +40,7 @@ class IrVariableImpl( override val isVar: Boolean, override val isConst: Boolean, override val isLateinit: Boolean -) : IrVariable { - +) : IrVariable() { private var _parent: IrDeclarationParent? = null override var parent: IrDeclarationParent get() = _parent @@ -57,7 +56,8 @@ class IrVariableImpl( } @ObsoleteDescriptorBasedAPI - override val descriptor: VariableDescriptor get() = symbol.descriptor + override val descriptor: VariableDescriptor + get() = symbol.descriptor override var initializer: IrExpression? = null diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt index 643e6738a5e..4bd8816c06d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt @@ -38,7 +38,7 @@ class IrLazyClass( override val isFun: Boolean, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator -) : IrClass, IrLazyDeclarationBase { +) : IrClass(), IrLazyDeclarationBase { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt index 47b4eb32566..54455a95e9f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyConstructor.kt @@ -33,7 +33,7 @@ class IrLazyConstructor( override val isExpect: Boolean, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, -) : IrConstructor, IrLazyFunctionBase { +) : IrConstructor(), IrLazyFunctionBase { override var parent: IrDeclarationParent by createLazyParent() override var annotations: List by createLazyAnnotations() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt index 737220d1b70..f4ade5f7e92 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt @@ -38,7 +38,7 @@ class IrLazyEnumEntryImpl( override val descriptor: ClassDescriptor, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, -) : IrEnumEntry, IrLazyDeclarationBase { +) : IrEnumEntry(), IrLazyDeclarationBase { init { symbol.bind(this) } 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 e514c20091f..081b1124f37 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 @@ -36,7 +36,7 @@ class IrLazyField( override val isStatic: Boolean, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, -) : IrField, IrLazyDeclarationBase { +) : IrField(), IrLazyDeclarationBase { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt index c4189981605..7707312d5d6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyFunction.kt @@ -41,7 +41,7 @@ class IrLazyFunction( override val isInfix: Boolean, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, -) : IrSimpleFunction, IrLazyFunctionBase { +) : IrSimpleFunction(), IrLazyFunctionBase { override var parent: IrDeclarationParent by createLazyParent() override var annotations: List by createLazyAnnotations() 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 04a08bbe892..fbe6ac071c3 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 @@ -38,7 +38,7 @@ class IrLazyProperty( override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, bindingContext: BindingContext? = null -) : IrProperty, IrLazyDeclarationBase { +) : IrProperty(), IrLazyDeclarationBase { init { symbol.bind(this) } 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 4d9c4914ef3..bbc52c195b0 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 @@ -28,7 +28,7 @@ class IrLazyTypeAlias( override val isActual: Boolean, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, -) : IrTypeAlias, IrLazyDeclarationBase { +) : IrTypeAlias(), IrLazyDeclarationBase { init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt index 07cd343cff6..6a5714ba207 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyTypeParameter.kt @@ -29,7 +29,7 @@ class IrLazyTypeParameter( override val variance: Variance, override val stubGenerator: DeclarationStubGenerator, override val typeTranslator: TypeTranslator, -) : IrTypeParameter, IrLazyDeclarationBase { +) : IrTypeParameter(), IrLazyDeclarationBase { init { symbol.bind(this) }