Introduce IrDeclarationWithVisibility

This commit is contained in:
Georgy Bronnikov
2018-08-02 12:49:27 +03:00
parent 8e95ecb821
commit 00da193167
5 changed files with 9 additions and 8 deletions
@@ -24,12 +24,11 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
interface IrClass : IrSymbolDeclaration<IrClassSymbol>, IrDeclarationContainer, IrTypeParametersContainer {
interface IrClass : IrSymbolDeclaration<IrClassSymbol>, IrDeclarationWithVisibility, IrDeclarationContainer, IrTypeParametersContainer {
override val descriptor: ClassDescriptor
val name: Name
val kind: ClassKind
val visibility: Visibility
val modality: Modality
val isCompanion: Boolean
val isInner: Boolean
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.symbols.IrSymbol
@@ -39,3 +40,7 @@ interface IrDeclaration : IrStatement, IrAnnotationContainer {
interface IrSymbolDeclaration<out S : IrSymbol> : IrDeclaration, IrSymbolOwner {
override val symbol: S
}
interface IrDeclarationWithVisibility : IrDeclaration {
val visibility: Visibility
}
@@ -12,12 +12,11 @@ import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
interface IrField : IrSymbolDeclaration<IrFieldSymbol> {
interface IrField : IrSymbolDeclaration<IrFieldSymbol>, IrDeclarationWithVisibility {
override val descriptor: PropertyDescriptor
val name: Name
val type: IrType
val visibility: Visibility
val isFinal: Boolean
val isExternal: Boolean
val isStatic: Boolean
@@ -25,12 +25,11 @@ import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.ir.types.IrType
interface IrFunction : IrDeclaration, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent, IrReturnTarget {
interface IrFunction : IrDeclarationWithVisibility, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent, IrReturnTarget {
override val descriptor: FunctionDescriptor
override val symbol: IrFunctionSymbol
val name: Name
val visibility: Visibility
val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class
val isExternal: Boolean
var returnType: IrType
@@ -21,12 +21,11 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.name.Name
interface IrProperty : IrDeclaration {
interface IrProperty : IrDeclarationWithVisibility {
override val descriptor: PropertyDescriptor
val name: Name
val modality: Modality
val visibility: Visibility
val isVar: Boolean
val isConst: Boolean
val isLateinit: Boolean