IrClass.isInner

This commit is contained in:
Dmitry Petrov
2018-05-11 14:04:52 +03:00
parent 1e92dbf806
commit 0feb50021c
17 changed files with 51 additions and 46 deletions
@@ -34,6 +34,7 @@ interface IrClass : IrSymbolDeclaration<IrClassSymbol>, IrDeclarationContainer,
val visibility: Visibility
val modality: Modality
val isCompanion: Boolean
val isInner: Boolean
val isData: Boolean
val isExternal: Boolean
@@ -40,6 +40,7 @@ class IrClassImpl(
override val visibility: Visibility,
override val modality: Modality,
override val isCompanion: Boolean,
override val isInner: Boolean,
override val isData: Boolean,
override val isExternal: Boolean
) : IrDeclarationBase(startOffset, endOffset, origin),
@@ -50,8 +51,10 @@ class IrClassImpl(
startOffset, endOffset, origin, symbol,
symbol.descriptor.name, symbol.descriptor.kind,
symbol.descriptor.visibility, symbol.descriptor.modality,
symbol.descriptor.isCompanionObject, symbol.descriptor.isData,
symbol.descriptor.isEffectivelyExternal()
isCompanion = symbol.descriptor.isCompanionObject,
isInner = symbol.descriptor.isInner,
isData = symbol.descriptor.isData,
isExternal = symbol.descriptor.isEffectivelyExternal()
)
constructor(startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor) :
@@ -135,6 +135,7 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
private fun IrClass.renderClassFlags() =
renderFlagsList(
"companion".takeIf { isCompanion },
"inner".takeIf { isInner },
"data".takeIf { isData },
"external".takeIf { isExternal }
)