[IR] Unbind construction methods of IrClassImpl from symbol.descriptor

This commit is contained in:
Mikhail Glukhikh
2020-05-18 15:31:21 +03:00
parent 9e807ebb89
commit a7d514a0a9
12 changed files with 79 additions and 101 deletions
@@ -167,7 +167,7 @@ class Fir2IrClassifierStorage(
regularClass.modality ?: Modality.FINAL
}
val irClass = regularClass.convertWithOffsets { startOffset, endOffset ->
symbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol ->
symbolTable.declareClass(descriptor) { symbol ->
IrClassImpl(
startOffset,
endOffset,
@@ -211,14 +211,12 @@ class Fir2IrClassifierStorage(
val origin = IrDeclarationOrigin.DEFINED
val modality = Modality.FINAL
val result = anonymousObject.convertWithOffsets { startOffset, endOffset ->
symbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol ->
symbolTable.declareClass(descriptor) { symbol ->
IrClassImpl(
startOffset, endOffset, origin, symbol, name,
// NB: for unknown reason, IR uses 'CLASS' kind for simple anonymous objects
anonymousObject.classKind.takeIf { it == ClassKind.ENUM_ENTRY } ?: ClassKind.CLASS,
visibility, modality,
isCompanion = false, isInner = false, isData = false,
isExternal = false, isInline = false, isExpect = false, isFun = false
visibility, modality
).apply {
metadata = FirMetadataSource.Class(anonymousObject, descriptor)
descriptor.bind(this)