Remove descriptors from LocalDeclarationslowering

This commit is contained in:
Georgy Bronnikov
2018-11-13 18:15:26 +03:00
parent b525146009
commit da0a823992
18 changed files with 74 additions and 34 deletions
@@ -24,10 +24,12 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
interface IrClass : IrSymbolDeclaration<IrClassSymbol>, IrDeclarationWithVisibility, IrDeclarationContainer, IrTypeParametersContainer {
interface IrClass :
IrSymbolDeclaration<IrClassSymbol>, IrDeclarationWithName, IrDeclarationWithVisibility,
IrDeclarationContainer, IrTypeParametersContainer {
override val descriptor: ClassDescriptor
val name: Name
val kind: ClassKind
val modality: Modality
val isCompanion: Boolean
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
import org.jetbrains.kotlin.name.Name
interface IrSymbolOwner : IrElement {
val symbol: IrSymbol
@@ -49,3 +50,7 @@ interface IrDeclarationWithVisibility : IrDeclaration {
val visibility: Visibility
}
interface IrDeclarationWithName : IrDeclaration {
val name: Name
}
@@ -19,13 +19,10 @@ package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol
import org.jetbrains.kotlin.name.Name
interface IrEnumEntry : IrSymbolDeclaration<IrEnumEntrySymbol> {
interface IrEnumEntry : IrSymbolDeclaration<IrEnumEntrySymbol>, IrDeclarationWithName {
override val descriptor: ClassDescriptor
val name: Name
var correspondingClass: IrClass?
var initializerExpression: IrExpression?
}
@@ -9,12 +9,10 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
interface IrField : IrSymbolDeclaration<IrFieldSymbol>, IrOverridableDeclaration<IrFieldSymbol>, IrDeclarationWithVisibility, IrDeclarationParent {
override val descriptor: PropertyDescriptor
val name: Name
val type: IrType
val isFinal: Boolean
val isExternal: Boolean
@@ -22,13 +22,13 @@ import org.jetbrains.kotlin.ir.expressions.IrBody
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
interface IrFunction : IrDeclarationWithVisibility, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent, IrReturnTarget {
interface IrFunction :
IrDeclarationWithName, IrDeclarationWithVisibility, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent, IrReturnTarget {
override val descriptor: FunctionDescriptor
override val symbol: IrFunctionSymbol
val name: Name
val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class
val isExternal: Boolean
var returnType: IrType
@@ -18,12 +18,10 @@ package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
interface IrLocalDelegatedProperty : IrDeclaration {
interface IrLocalDelegatedProperty : IrDeclarationWithName {
override val descriptor: VariableDescriptorWithAccessors
val name: Name
val type: IrType
val isVar: Boolean
@@ -18,13 +18,10 @@ package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.name.Name
interface IrProperty : IrDeclarationWithVisibility {
interface IrProperty : IrDeclarationWithName, IrDeclarationWithVisibility {
override val descriptor: PropertyDescriptor
val name: Name
val modality: Modality
val isVar: Boolean
val isConst: Boolean
@@ -20,13 +20,11 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.Variance
interface IrTypeParameter : IrSymbolDeclaration<IrTypeParameterSymbol> {
interface IrTypeParameter : IrSymbolDeclaration<IrTypeParameterSymbol>, IrDeclarationWithName {
override val descriptor: TypeParameterDescriptor
val name: Name
val variance: Variance
val index: Int
val isReified: Boolean
@@ -8,13 +8,10 @@ package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.ValueDescriptor
import org.jetbrains.kotlin.ir.symbols.IrValueSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.KotlinType
interface IrValueDeclaration : IrDeclaration, IrSymbolOwner {
interface IrValueDeclaration : IrDeclarationWithName, IrSymbolOwner {
override val descriptor: ValueDescriptor
override val symbol: IrValueSymbol
val name: Name
val type: IrType
}