[IR] Reorder parameters in IrFactory#createClass
This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
committed by
Space Team
parent
bfb314adcb
commit
f46761a241
+25
-15
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.backend
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.fir.containingClassForLocalAttr
|
import org.jetbrains.kotlin.fir.containingClassForLocalAttr
|
||||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnonymousObjectExpression
|
import org.jetbrains.kotlin.fir.expressions.FirAnonymousObjectExpression
|
||||||
@@ -352,18 +351,18 @@ class Fir2IrClassifierStorage(
|
|||||||
val irClass = regularClass.convertWithOffsets { startOffset, endOffset ->
|
val irClass = regularClass.convertWithOffsets { startOffset, endOffset ->
|
||||||
declareIrClass(signature) { symbol ->
|
declareIrClass(signature) { symbol ->
|
||||||
irFactory.createClass(
|
irFactory.createClass(
|
||||||
startOffset,
|
startOffset = startOffset,
|
||||||
endOffset,
|
endOffset = endOffset,
|
||||||
regularClass.computeIrOrigin(predefinedOrigin),
|
origin = regularClass.computeIrOrigin(predefinedOrigin),
|
||||||
symbol,
|
name = regularClass.name,
|
||||||
regularClass.name,
|
visibility = components.visibilityConverter.convertToDescriptorVisibility(visibility),
|
||||||
regularClass.classKind,
|
symbol = symbol,
|
||||||
components.visibilityConverter.convertToDescriptorVisibility(visibility),
|
kind = regularClass.classKind,
|
||||||
modality,
|
modality = modality,
|
||||||
|
isExternal = regularClass.isExternal,
|
||||||
isCompanion = regularClass.isCompanion,
|
isCompanion = regularClass.isCompanion,
|
||||||
isInner = regularClass.isInner,
|
isInner = regularClass.isInner,
|
||||||
isData = regularClass.isData,
|
isData = regularClass.isData,
|
||||||
isExternal = regularClass.isExternal,
|
|
||||||
isValue = regularClass.isInline,
|
isValue = regularClass.isInline,
|
||||||
isExpect = regularClass.isExpect,
|
isExpect = regularClass.isExpect,
|
||||||
isFun = regularClass.isFun
|
isFun = regularClass.isFun
|
||||||
@@ -391,10 +390,15 @@ class Fir2IrClassifierStorage(
|
|||||||
val modality = Modality.FINAL
|
val modality = Modality.FINAL
|
||||||
val irAnonymousObject = anonymousObject.convertWithOffsets { startOffset, endOffset ->
|
val irAnonymousObject = anonymousObject.convertWithOffsets { startOffset, endOffset ->
|
||||||
irFactory.createClass(
|
irFactory.createClass(
|
||||||
startOffset, endOffset, origin, IrClassSymbolImpl(), name,
|
startOffset = startOffset,
|
||||||
|
endOffset = endOffset,
|
||||||
|
origin = origin,
|
||||||
|
name = name,
|
||||||
|
visibility = components.visibilityConverter.convertToDescriptorVisibility(visibility),
|
||||||
|
symbol = IrClassSymbolImpl(),
|
||||||
// NB: for unknown reason, IR uses 'CLASS' kind for simple anonymous objects
|
// NB: for unknown reason, IR uses 'CLASS' kind for simple anonymous objects
|
||||||
anonymousObject.classKind.takeIf { it == ClassKind.ENUM_ENTRY } ?: ClassKind.CLASS,
|
kind = anonymousObject.classKind.takeIf { it == ClassKind.ENUM_ENTRY } ?: ClassKind.CLASS,
|
||||||
components.visibilityConverter.convertToDescriptorVisibility(visibility), modality
|
modality = modality,
|
||||||
).apply {
|
).apply {
|
||||||
metadata = FirMetadataSource.Class(anonymousObject)
|
metadata = FirMetadataSource.Class(anonymousObject)
|
||||||
}
|
}
|
||||||
@@ -634,8 +638,14 @@ class Fir2IrClassifierStorage(
|
|||||||
|
|
||||||
return symbolTable.referenceClass(signature, { Fir2IrClassSymbol(signature) }) {
|
return symbolTable.referenceClass(signature, { Fir2IrClassSymbol(signature) }) {
|
||||||
irFactory.createClass(
|
irFactory.createClass(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, it, classId.shortClassName,
|
startOffset = UNDEFINED_OFFSET,
|
||||||
ClassKind.CLASS, DescriptorVisibilities.DEFAULT_VISIBILITY, Modality.FINAL,
|
endOffset = UNDEFINED_OFFSET,
|
||||||
|
origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB,
|
||||||
|
name = classId.shortClassName,
|
||||||
|
visibility = DescriptorVisibilities.DEFAULT_VISIBILITY,
|
||||||
|
symbol = it,
|
||||||
|
kind = ClassKind.CLASS,
|
||||||
|
modality = Modality.FINAL,
|
||||||
).apply {
|
).apply {
|
||||||
parent = irParent
|
parent = irParent
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -710,8 +710,21 @@ class IrBuiltInsOverFir(
|
|||||||
origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB
|
origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB
|
||||||
build()
|
build()
|
||||||
irFactory.createClass(
|
irFactory.createClass(
|
||||||
startOffset, endOffset, origin, symbol, name, kind, visibility, modality,
|
startOffset = startOffset,
|
||||||
isCompanion, isInner, isData, isExternal, isValue, isExpect, isFun
|
endOffset = endOffset,
|
||||||
|
origin = origin,
|
||||||
|
name = name,
|
||||||
|
visibility = visibility,
|
||||||
|
symbol = symbol,
|
||||||
|
kind = kind,
|
||||||
|
modality = modality,
|
||||||
|
isExternal = isExternal,
|
||||||
|
isCompanion = isCompanion,
|
||||||
|
isInner = isInner,
|
||||||
|
isData = isData,
|
||||||
|
isValue = isValue,
|
||||||
|
isExpect = isExpect,
|
||||||
|
isFun = isFun,
|
||||||
)
|
)
|
||||||
}.also {
|
}.also {
|
||||||
it.parent = parent
|
it.parent = parent
|
||||||
@@ -776,8 +789,21 @@ class IrBuiltInsOverFir(
|
|||||||
origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB
|
origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB
|
||||||
builderBlock()
|
builderBlock()
|
||||||
irFactory.createClass(
|
irFactory.createClass(
|
||||||
startOffset, endOffset, origin, symbol, name, kind, visibility, modality,
|
startOffset = startOffset,
|
||||||
isCompanion, isInner, isData, isExternal, isValue, isExpect, isFun
|
endOffset = endOffset,
|
||||||
|
origin = origin,
|
||||||
|
name = name,
|
||||||
|
visibility = visibility,
|
||||||
|
symbol = symbol,
|
||||||
|
kind = kind,
|
||||||
|
modality = modality,
|
||||||
|
isExternal = isExternal,
|
||||||
|
isCompanion = isCompanion,
|
||||||
|
isInner = isInner,
|
||||||
|
isData = isData,
|
||||||
|
isValue = isValue,
|
||||||
|
isExpect = isExpect,
|
||||||
|
isFun = isFun,
|
||||||
)
|
)
|
||||||
}.also {
|
}.also {
|
||||||
it.parent = this
|
it.parent = this
|
||||||
|
|||||||
+8
-6
@@ -19,10 +19,6 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
|||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||||
import org.jetbrains.kotlin.ir.interpreter.state.Complex
|
|
||||||
import org.jetbrains.kotlin.ir.interpreter.state.ExceptionState
|
|
||||||
import org.jetbrains.kotlin.ir.interpreter.state.Primitive
|
|
||||||
import org.jetbrains.kotlin.ir.interpreter.state.State
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl
|
||||||
@@ -108,8 +104,14 @@ internal fun createTempFunction(
|
|||||||
|
|
||||||
internal fun createTempClass(name: Name, origin: IrDeclarationOrigin = TEMP_CLASS_FOR_INTERPRETER): IrClass {
|
internal fun createTempClass(name: Name, origin: IrDeclarationOrigin = TEMP_CLASS_FOR_INTERPRETER): IrClass {
|
||||||
return IrFactoryImpl.createClass(
|
return IrFactoryImpl.createClass(
|
||||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, origin, IrClassSymbolImpl(), name,
|
startOffset = SYNTHETIC_OFFSET,
|
||||||
ClassKind.CLASS, DescriptorVisibilities.PRIVATE, Modality.FINAL
|
endOffset = SYNTHETIC_OFFSET,
|
||||||
|
origin = origin,
|
||||||
|
name = name,
|
||||||
|
visibility = DescriptorVisibilities.PRIVATE,
|
||||||
|
symbol = IrClassSymbolImpl(),
|
||||||
|
kind = ClassKind.CLASS,
|
||||||
|
modality = Modality.FINAL,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -433,7 +433,14 @@ class IrDescriptorBasedFunctionFactory(
|
|||||||
val name = functionClassName(isK, isSuspend, n)
|
val name = functionClassName(isK, isSuspend, n)
|
||||||
if (symbol.isBound) return symbol.owner
|
if (symbol.isBound) return symbol.owner
|
||||||
val klass = irFactory.createClass(
|
val klass = irFactory.createClass(
|
||||||
offset, offset, classOrigin, symbol, Name.identifier(name), ClassKind.INTERFACE, DescriptorVisibilities.PUBLIC, Modality.ABSTRACT
|
startOffset = offset,
|
||||||
|
endOffset = offset,
|
||||||
|
origin = classOrigin,
|
||||||
|
name = Name.identifier(name),
|
||||||
|
visibility = DescriptorVisibilities.PUBLIC,
|
||||||
|
symbol = symbol,
|
||||||
|
kind = ClassKind.INTERFACE,
|
||||||
|
modality = Modality.ABSTRACT,
|
||||||
)
|
)
|
||||||
|
|
||||||
val r = klass.createTypeParameters(n, descriptorFactory)
|
val r = klass.createTypeParameters(n, descriptorFactory)
|
||||||
|
|||||||
+15
-4
@@ -27,10 +27,21 @@ import org.jetbrains.kotlin.types.Variance
|
|||||||
@PublishedApi
|
@PublishedApi
|
||||||
internal fun IrFactory.buildClass(builder: IrClassBuilder): IrClass = with(builder) {
|
internal fun IrFactory.buildClass(builder: IrClassBuilder): IrClass = with(builder) {
|
||||||
createClass(
|
createClass(
|
||||||
startOffset, endOffset, origin,
|
startOffset = startOffset,
|
||||||
IrClassSymbolImpl(),
|
endOffset = endOffset,
|
||||||
name, kind, visibility, modality,
|
origin = origin,
|
||||||
isCompanion, isInner, isData, isExternal, isValue, isExpect, isFun
|
name = name,
|
||||||
|
visibility = visibility,
|
||||||
|
symbol = IrClassSymbolImpl(),
|
||||||
|
kind = kind,
|
||||||
|
modality = modality,
|
||||||
|
isExternal = isExternal,
|
||||||
|
isCompanion = isCompanion,
|
||||||
|
isInner = isInner,
|
||||||
|
isData = isData,
|
||||||
|
isValue = isValue,
|
||||||
|
isExpect = isExpect,
|
||||||
|
isFun = isFun,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,15 +31,15 @@ interface IrFactory {
|
|||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
symbol: IrClassSymbol,
|
|
||||||
name: Name,
|
name: Name,
|
||||||
kind: ClassKind,
|
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
|
symbol: IrClassSymbol,
|
||||||
|
kind: ClassKind,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
|
isExternal: Boolean = false,
|
||||||
isCompanion: Boolean = false,
|
isCompanion: Boolean = false,
|
||||||
isInner: Boolean = false,
|
isInner: Boolean = false,
|
||||||
isData: Boolean = false,
|
isData: Boolean = false,
|
||||||
isExternal: Boolean = false,
|
|
||||||
isValue: Boolean = false,
|
isValue: Boolean = false,
|
||||||
isExpect: Boolean = false,
|
isExpect: Boolean = false,
|
||||||
isFun: Boolean = false,
|
isFun: Boolean = false,
|
||||||
|
|||||||
@@ -38,15 +38,15 @@ abstract class AbstractIrFactoryImpl : IrFactory {
|
|||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
symbol: IrClassSymbol,
|
|
||||||
name: Name,
|
name: Name,
|
||||||
kind: ClassKind,
|
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
|
symbol: IrClassSymbol,
|
||||||
|
kind: ClassKind,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
|
isExternal: Boolean,
|
||||||
isCompanion: Boolean,
|
isCompanion: Boolean,
|
||||||
isInner: Boolean,
|
isInner: Boolean,
|
||||||
isData: Boolean,
|
isData: Boolean,
|
||||||
isExternal: Boolean,
|
|
||||||
isValue: Boolean,
|
isValue: Boolean,
|
||||||
isExpect: Boolean,
|
isExpect: Boolean,
|
||||||
isFun: Boolean,
|
isFun: Boolean,
|
||||||
|
|||||||
+6
-6
@@ -50,15 +50,15 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
|
|||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
symbol: IrClassSymbol,
|
|
||||||
name: Name,
|
name: Name,
|
||||||
kind: ClassKind,
|
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
|
symbol: IrClassSymbol,
|
||||||
|
kind: ClassKind,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
|
isExternal: Boolean,
|
||||||
isCompanion: Boolean,
|
isCompanion: Boolean,
|
||||||
isInner: Boolean,
|
isInner: Boolean,
|
||||||
isData: Boolean,
|
isData: Boolean,
|
||||||
isExternal: Boolean,
|
|
||||||
isValue: Boolean,
|
isValue: Boolean,
|
||||||
isExpect: Boolean,
|
isExpect: Boolean,
|
||||||
isFun: Boolean,
|
isFun: Boolean,
|
||||||
@@ -68,15 +68,15 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
|
|||||||
startOffset,
|
startOffset,
|
||||||
endOffset,
|
endOffset,
|
||||||
origin,
|
origin,
|
||||||
symbol,
|
|
||||||
name,
|
name,
|
||||||
kind,
|
|
||||||
visibility,
|
visibility,
|
||||||
|
symbol,
|
||||||
|
kind,
|
||||||
modality,
|
modality,
|
||||||
|
isExternal,
|
||||||
isCompanion,
|
isCompanion,
|
||||||
isInner,
|
isInner,
|
||||||
isData,
|
isData,
|
||||||
isExternal,
|
|
||||||
isValue,
|
isValue,
|
||||||
isExpect,
|
isExpect,
|
||||||
isFun,
|
isFun,
|
||||||
|
|||||||
@@ -24,15 +24,15 @@ class LazyIrFactory(
|
|||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
symbol: IrClassSymbol,
|
|
||||||
name: Name,
|
name: Name,
|
||||||
kind: ClassKind,
|
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
|
symbol: IrClassSymbol,
|
||||||
|
kind: ClassKind,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
|
isExternal: Boolean,
|
||||||
isCompanion: Boolean,
|
isCompanion: Boolean,
|
||||||
isInner: Boolean,
|
isInner: Boolean,
|
||||||
isData: Boolean,
|
isData: Boolean,
|
||||||
isExternal: Boolean,
|
|
||||||
isValue: Boolean,
|
isValue: Boolean,
|
||||||
isExpect: Boolean,
|
isExpect: Boolean,
|
||||||
isFun: Boolean,
|
isFun: Boolean,
|
||||||
@@ -41,8 +41,22 @@ class LazyIrFactory(
|
|||||||
symbol.owner
|
symbol.owner
|
||||||
else
|
else
|
||||||
delegate.createClass(
|
delegate.createClass(
|
||||||
startOffset, endOffset, origin, symbol, name, kind, visibility, modality,
|
startOffset,
|
||||||
isCompanion, isInner, isData, isExternal, isValue, isExpect, isFun, source
|
endOffset,
|
||||||
|
origin,
|
||||||
|
name,
|
||||||
|
visibility,
|
||||||
|
symbol,
|
||||||
|
kind,
|
||||||
|
modality,
|
||||||
|
isExternal,
|
||||||
|
isCompanion,
|
||||||
|
isInner,
|
||||||
|
isData,
|
||||||
|
isValue,
|
||||||
|
isExpect,
|
||||||
|
isFun,
|
||||||
|
source,
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun createConstructor(
|
override fun createConstructor(
|
||||||
|
|||||||
@@ -141,20 +141,21 @@ open class DeepCopyIrTreeWithSymbols(
|
|||||||
|
|
||||||
override fun visitClass(declaration: IrClass): IrClass =
|
override fun visitClass(declaration: IrClass): IrClass =
|
||||||
declaration.factory.createClass(
|
declaration.factory.createClass(
|
||||||
declaration.startOffset, declaration.endOffset,
|
startOffset = declaration.startOffset,
|
||||||
mapDeclarationOrigin(declaration.origin),
|
endOffset = declaration.endOffset,
|
||||||
symbolRemapper.getDeclaredClass(declaration.symbol),
|
origin = mapDeclarationOrigin(declaration.origin),
|
||||||
symbolRenamer.getClassName(declaration.symbol),
|
name = symbolRenamer.getClassName(declaration.symbol),
|
||||||
declaration.kind,
|
visibility = declaration.visibility,
|
||||||
declaration.visibility,
|
symbol = symbolRemapper.getDeclaredClass(declaration.symbol),
|
||||||
declaration.modality,
|
kind = declaration.kind,
|
||||||
|
modality = declaration.modality,
|
||||||
|
isExternal = declaration.isExternal,
|
||||||
isCompanion = declaration.isCompanion,
|
isCompanion = declaration.isCompanion,
|
||||||
isInner = declaration.isInner,
|
isInner = declaration.isInner,
|
||||||
isData = declaration.isData,
|
isData = declaration.isData,
|
||||||
isExternal = declaration.isExternal,
|
|
||||||
isValue = declaration.isValue,
|
isValue = declaration.isValue,
|
||||||
isExpect = declaration.isExpect,
|
isExpect = declaration.isExpect,
|
||||||
isFun = declaration.isFun
|
isFun = declaration.isFun,
|
||||||
).apply {
|
).apply {
|
||||||
transformAnnotations(declaration)
|
transformAnnotations(declaration)
|
||||||
copyTypeParametersFrom(declaration)
|
copyTypeParametersFrom(declaration)
|
||||||
|
|||||||
@@ -37,7 +37,20 @@ fun IrFactory.createIrClassFromDescriptor(
|
|||||||
visibility: DescriptorVisibility = descriptor.visibility,
|
visibility: DescriptorVisibility = descriptor.visibility,
|
||||||
modality: Modality = descriptor.modality
|
modality: Modality = descriptor.modality
|
||||||
): IrClass = createClass(
|
): IrClass = createClass(
|
||||||
startOffset, endOffset, origin, symbol, name, descriptor.kind, visibility, modality,
|
startOffset = startOffset,
|
||||||
descriptor.isCompanionObject, descriptor.isInner, descriptor.isData, descriptor.isEffectivelyExternal(),
|
endOffset = endOffset,
|
||||||
descriptor.isValueClass(), descriptor.isExpect, descriptor.isFun, descriptor.source
|
origin = origin,
|
||||||
|
name = name,
|
||||||
|
visibility = visibility,
|
||||||
|
symbol = symbol,
|
||||||
|
kind = descriptor.kind,
|
||||||
|
modality = modality,
|
||||||
|
isExternal = descriptor.isEffectivelyExternal(),
|
||||||
|
isCompanion = descriptor.isCompanionObject,
|
||||||
|
isInner = descriptor.isInner,
|
||||||
|
isData = descriptor.isData,
|
||||||
|
isValue = descriptor.isValueClass(),
|
||||||
|
isExpect = descriptor.isExpect,
|
||||||
|
isFun = descriptor.isFun,
|
||||||
|
source = descriptor.source,
|
||||||
)
|
)
|
||||||
|
|||||||
+3
-3
@@ -69,11 +69,11 @@ internal class MissingDeclarationStubGenerator(private val builtIns: IrBuiltIns)
|
|||||||
startOffset = UNDEFINED_OFFSET,
|
startOffset = UNDEFINED_OFFSET,
|
||||||
endOffset = UNDEFINED_OFFSET,
|
endOffset = UNDEFINED_OFFSET,
|
||||||
origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION,
|
origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION,
|
||||||
symbol = symbol,
|
|
||||||
name = symbol.guessName(),
|
name = symbol.guessName(),
|
||||||
kind = ClassKind.CLASS,
|
|
||||||
visibility = DescriptorVisibilities.DEFAULT_VISIBILITY,
|
visibility = DescriptorVisibilities.DEFAULT_VISIBILITY,
|
||||||
modality = Modality.OPEN
|
symbol = symbol,
|
||||||
|
kind = ClassKind.CLASS,
|
||||||
|
modality = Modality.OPEN,
|
||||||
).apply {
|
).apply {
|
||||||
setCommonParent()
|
setCommonParent()
|
||||||
createImplicitParameterDeclarationWithWrappedDescriptor()
|
createImplicitParameterDeclarationWithWrappedDescriptor()
|
||||||
|
|||||||
+15
-13
@@ -357,19 +357,21 @@ class IrDeclarationDeserializer(
|
|||||||
}
|
}
|
||||||
symbolTable.declareClass(signature, { symbol.checkSymbolType(CLASS_SYMBOL) }) {
|
symbolTable.declareClass(signature, { symbol.checkSymbolType(CLASS_SYMBOL) }) {
|
||||||
irFactory.createClass(
|
irFactory.createClass(
|
||||||
startOffset, endOffset, origin,
|
startOffset = startOffset,
|
||||||
it,
|
endOffset = endOffset,
|
||||||
deserializeName(proto.name),
|
origin = origin,
|
||||||
flags.kind,
|
name = deserializeName(proto.name),
|
||||||
flags.visibility,
|
visibility = flags.visibility,
|
||||||
effectiveModality,
|
symbol = it,
|
||||||
flags.isCompanion,
|
kind = flags.kind,
|
||||||
flags.isInner,
|
modality = effectiveModality,
|
||||||
flags.isData,
|
isExternal = flags.isExternal || isEffectivelyExternal,
|
||||||
flags.isExternal || isEffectivelyExternal,
|
isCompanion = flags.isCompanion,
|
||||||
flags.isValue,
|
isInner = flags.isInner,
|
||||||
flags.isExpect,
|
isData = flags.isData,
|
||||||
flags.isFun,
|
isValue = flags.isValue,
|
||||||
|
isExpect = flags.isExpect,
|
||||||
|
isFun = flags.isFun,
|
||||||
)
|
)
|
||||||
}.usingParent {
|
}.usingParent {
|
||||||
typeParameters = deserializeTypeParameters(proto.typeParameterList, true)
|
typeParameters = deserializeTypeParameters(proto.typeParameterList, true)
|
||||||
|
|||||||
Reference in New Issue
Block a user