IR: remove IrSymbolDeclaration
This commit is contained in:
+2
-1
@@ -23,9 +23,10 @@ import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrAnonymousInitializer : IrDeclarationBase(), IrSymbolDeclaration<IrAnonymousInitializerSymbol> {
|
||||
abstract class IrAnonymousInitializer : IrDeclarationBase() {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: ClassDescriptor // TODO special descriptor for anonymous initializer blocks
|
||||
abstract override val symbol: IrAnonymousInitializerSymbol
|
||||
|
||||
abstract val isStatic: Boolean
|
||||
|
||||
|
||||
@@ -29,11 +29,12 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrClass :
|
||||
IrDeclarationBase(), IrSymbolDeclaration<IrClassSymbol>, IrDeclarationWithName, IrDeclarationWithVisibility,
|
||||
IrDeclarationBase(), IrDeclarationWithName, IrDeclarationWithVisibility,
|
||||
IrDeclarationContainer, IrTypeParametersContainer, IrAttributeContainer, IrMetadataSourceOwner {
|
||||
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: ClassDescriptor
|
||||
abstract override val symbol: IrClassSymbol
|
||||
|
||||
abstract val kind: ClassKind
|
||||
abstract var modality: Modality
|
||||
|
||||
@@ -21,9 +21,10 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrConstructor : IrFunction(), IrSymbolDeclaration<IrConstructorSymbol> {
|
||||
abstract class IrConstructor : IrFunction() {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: ClassConstructorDescriptor
|
||||
abstract override val symbol: IrConstructorSymbol
|
||||
|
||||
abstract val isPrimary: Boolean
|
||||
|
||||
|
||||
@@ -48,10 +48,6 @@ interface IrDeclaration : IrStatement, IrSymbolOwner, IrMutableAnnotationContain
|
||||
|
||||
abstract class IrDeclarationBase : IrElementBase(), IrDeclaration
|
||||
|
||||
interface IrSymbolDeclaration<out S : IrSymbol> : IrDeclaration {
|
||||
override val symbol: S
|
||||
}
|
||||
|
||||
interface IrOverridableDeclaration<S : IrSymbol> : IrDeclaration {
|
||||
var overriddenSymbols: List<S>
|
||||
}
|
||||
|
||||
@@ -23,9 +23,10 @@ import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrEnumEntry : IrDeclarationBase(), IrSymbolDeclaration<IrEnumEntrySymbol>, IrDeclarationWithName {
|
||||
abstract class IrEnumEntry : IrDeclarationBase(), IrDeclarationWithName {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: ClassDescriptor
|
||||
abstract override val symbol: IrEnumEntrySymbol
|
||||
|
||||
abstract var correspondingClass: IrClass?
|
||||
abstract var initializerExpression: IrExpressionBody?
|
||||
|
||||
+3
-1
@@ -8,7 +8,9 @@ package org.jetbrains.kotlin.ir.declarations
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
|
||||
interface IrFakeOverrideFunction : IrSymbolDeclaration<IrSimpleFunctionSymbol> {
|
||||
interface IrFakeOverrideFunction : IrDeclaration {
|
||||
override val symbol: IrSimpleFunctionSymbol
|
||||
|
||||
var modality: Modality
|
||||
|
||||
fun acquireSymbol(symbol: IrSimpleFunctionSymbol): IrSimpleFunction
|
||||
|
||||
+3
-1
@@ -8,7 +8,9 @@ package org.jetbrains.kotlin.ir.declarations
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
|
||||
interface IrFakeOverrideProperty : IrSymbolDeclaration<IrPropertySymbol> {
|
||||
interface IrFakeOverrideProperty : IrDeclaration {
|
||||
override val symbol: IrPropertySymbol
|
||||
|
||||
var modality: Modality
|
||||
var getter: IrSimpleFunction?
|
||||
var setter: IrSimpleFunction?
|
||||
|
||||
@@ -16,11 +16,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrField :
|
||||
IrDeclarationBase(),
|
||||
IrSymbolDeclaration<IrFieldSymbol>,
|
||||
IrDeclarationWithName, IrDeclarationWithVisibility, IrDeclarationParent, IrMetadataSourceOwner {
|
||||
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: PropertyDescriptor
|
||||
abstract override val symbol: IrFieldSymbol
|
||||
|
||||
abstract var type: IrType
|
||||
abstract val isFinal: Boolean
|
||||
|
||||
@@ -13,9 +13,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
||||
//TODO: make IrScript as IrPackageFragment, because script is used as a file, not as a class
|
||||
//NOTE: declarations and statements stored separately
|
||||
abstract class IrScript :
|
||||
IrDeclarationBase(), IrSymbolDeclaration<IrScriptSymbol>, IrDeclarationWithName,
|
||||
IrDeclarationBase(), IrDeclarationWithName,
|
||||
IrDeclarationParent, IrStatementContainer {
|
||||
|
||||
abstract override val symbol: IrScriptSymbol
|
||||
|
||||
// NOTE: is the result of the FE conversion, because there script interpreted as a class and has receiver
|
||||
// TODO: consider removing from here and handle appropriately in the lowering
|
||||
abstract var thisReceiver: IrValueParameter
|
||||
|
||||
@@ -11,11 +11,12 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrSimpleFunction :
|
||||
IrFunction(),
|
||||
IrSymbolDeclaration<IrSimpleFunctionSymbol>,
|
||||
IrOverridableDeclaration<IrSimpleFunctionSymbol>,
|
||||
IrOverridableMember,
|
||||
IrAttributeContainer {
|
||||
|
||||
abstract override val symbol: IrSimpleFunctionSymbol
|
||||
|
||||
abstract val isTailrec: Boolean
|
||||
abstract val isSuspend: Boolean
|
||||
abstract val isFakeOverride: Boolean
|
||||
|
||||
@@ -15,13 +15,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrTypeAlias :
|
||||
IrDeclarationBase(),
|
||||
IrSymbolDeclaration<IrTypeAliasSymbol>,
|
||||
IrDeclarationWithName,
|
||||
IrDeclarationWithVisibility,
|
||||
IrTypeParametersContainer {
|
||||
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: TypeAliasDescriptor
|
||||
abstract override val symbol: IrTypeAliasSymbol
|
||||
|
||||
abstract val isActual: Boolean
|
||||
abstract var expandedType: IrType
|
||||
|
||||
@@ -24,9 +24,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
abstract class IrTypeParameter : IrDeclarationBase(), IrSymbolDeclaration<IrTypeParameterSymbol>, IrDeclarationWithName {
|
||||
abstract class IrTypeParameter : IrDeclarationBase(), IrDeclarationWithName {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: TypeParameterDescriptor
|
||||
abstract override val symbol: IrTypeParameterSymbol
|
||||
|
||||
abstract val variance: Variance
|
||||
abstract val index: Int
|
||||
|
||||
@@ -24,9 +24,10 @@ import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
|
||||
abstract class IrValueParameter : IrValueDeclaration(), IrSymbolDeclaration<IrValueParameterSymbol> {
|
||||
abstract class IrValueParameter : IrValueDeclaration() {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: ParameterDescriptor
|
||||
abstract override val symbol: IrValueParameterSymbol
|
||||
|
||||
abstract val index: Int
|
||||
abstract var varargElementType: IrType?
|
||||
|
||||
@@ -21,9 +21,10 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol
|
||||
|
||||
abstract class IrVariable : IrValueDeclaration(), IrSymbolDeclaration<IrVariableSymbol> {
|
||||
abstract class IrVariable : IrValueDeclaration() {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract override val descriptor: VariableDescriptor
|
||||
abstract override val symbol: IrVariableSymbol
|
||||
|
||||
abstract val isVar: Boolean
|
||||
abstract val isConst: Boolean
|
||||
|
||||
@@ -195,9 +195,8 @@ class SymbolTable(
|
||||
}
|
||||
} else {
|
||||
if (d.isBound()) {
|
||||
val result = (d.owner as? IrSymbolDeclaration<*>)?.symbol ?: descriptorToSymbol[d]
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
result as S?
|
||||
d.owner.symbol as S
|
||||
} else {
|
||||
descriptorToSymbol[d]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user