[Psi2Ir] Make IrEnumEntry corresponding class always privite
This commit is contained in:
@@ -75,14 +75,15 @@ class ClassGenerator(
|
||||
}
|
||||
}
|
||||
|
||||
fun generateClass(ktClassOrObject: KtPureClassOrObject): IrClass {
|
||||
fun generateClass(ktClassOrObject: KtPureClassOrObject, visibility_: Visibility? = null): IrClass {
|
||||
val classDescriptor = ktClassOrObject.findClassDescriptor(this.context.bindingContext)
|
||||
val startOffset = ktClassOrObject.getStartOffsetOfClassDeclarationOrNull() ?: ktClassOrObject.pureStartOffset
|
||||
val endOffset = ktClassOrObject.pureEndOffset
|
||||
val visibility = visibility_ ?: classDescriptor.visibility
|
||||
|
||||
return context.symbolTable.declareClass(
|
||||
startOffset, endOffset, IrDeclarationOrigin.DEFINED, classDescriptor,
|
||||
getEffectiveModality(ktClassOrObject, classDescriptor)
|
||||
getEffectiveModality(ktClassOrObject, classDescriptor), visibility
|
||||
).buildWithScope { irClass ->
|
||||
declarationGenerator.generateGlobalTypeParametersDeclarations(irClass, classDescriptor.declaredTypeParameters)
|
||||
|
||||
@@ -492,7 +493,7 @@ class ClassGenerator(
|
||||
}
|
||||
|
||||
if (ktEnumEntry.hasMemberDeclarations()) {
|
||||
irEnumEntry.correspondingClass = generateClass(ktEnumEntry)
|
||||
irEnumEntry.correspondingClass = generateClass(ktEnumEntry, Visibilities.PRIVATE)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,12 +59,13 @@ class IrClassImpl(
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
symbol: IrClassSymbol,
|
||||
modality: Modality = symbol.descriptor.modality
|
||||
modality: Modality = symbol.descriptor.modality,
|
||||
visibility: Visibility = symbol.descriptor.visibility
|
||||
) :
|
||||
this(
|
||||
startOffset, endOffset, origin, symbol,
|
||||
symbol.descriptor.name, symbol.descriptor.kind,
|
||||
symbol.descriptor.visibility,
|
||||
visibility,
|
||||
modality = modality,
|
||||
isCompanion = symbol.descriptor.isCompanionObject,
|
||||
isInner = symbol.descriptor.isInner,
|
||||
|
||||
@@ -344,9 +344,9 @@ open class SymbolTable(val mangler: KotlinMangler? = null) : ReferenceSymbolTabl
|
||||
|
||||
fun declareClass(
|
||||
startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor,
|
||||
modality: Modality = descriptor.modality,
|
||||
modality: Modality = descriptor.modality, visibility: Visibility = descriptor.visibility,
|
||||
classFactory: (IrClassSymbol) -> IrClass = {
|
||||
IrClassImpl(startOffset, endOffset, origin, it, modality).apply { metadata = MetadataSource.Class(it.descriptor) }
|
||||
IrClassImpl(startOffset, endOffset, origin, it, modality, visibility).apply { metadata = MetadataSource.Class(it.descriptor) }
|
||||
}
|
||||
): IrClass {
|
||||
return classSymbolTable.declare(
|
||||
|
||||
Reference in New Issue
Block a user