[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 classDescriptor = ktClassOrObject.findClassDescriptor(this.context.bindingContext)
|
||||||
val startOffset = ktClassOrObject.getStartOffsetOfClassDeclarationOrNull() ?: ktClassOrObject.pureStartOffset
|
val startOffset = ktClassOrObject.getStartOffsetOfClassDeclarationOrNull() ?: ktClassOrObject.pureStartOffset
|
||||||
val endOffset = ktClassOrObject.pureEndOffset
|
val endOffset = ktClassOrObject.pureEndOffset
|
||||||
|
val visibility = visibility_ ?: classDescriptor.visibility
|
||||||
|
|
||||||
return context.symbolTable.declareClass(
|
return context.symbolTable.declareClass(
|
||||||
startOffset, endOffset, IrDeclarationOrigin.DEFINED, classDescriptor,
|
startOffset, endOffset, IrDeclarationOrigin.DEFINED, classDescriptor,
|
||||||
getEffectiveModality(ktClassOrObject, classDescriptor)
|
getEffectiveModality(ktClassOrObject, classDescriptor), visibility
|
||||||
).buildWithScope { irClass ->
|
).buildWithScope { irClass ->
|
||||||
declarationGenerator.generateGlobalTypeParametersDeclarations(irClass, classDescriptor.declaredTypeParameters)
|
declarationGenerator.generateGlobalTypeParametersDeclarations(irClass, classDescriptor.declaredTypeParameters)
|
||||||
|
|
||||||
@@ -492,7 +493,7 @@ class ClassGenerator(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ktEnumEntry.hasMemberDeclarations()) {
|
if (ktEnumEntry.hasMemberDeclarations()) {
|
||||||
irEnumEntry.correspondingClass = generateClass(ktEnumEntry)
|
irEnumEntry.correspondingClass = generateClass(ktEnumEntry, Visibilities.PRIVATE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,12 +59,13 @@ class IrClassImpl(
|
|||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
symbol: IrClassSymbol,
|
symbol: IrClassSymbol,
|
||||||
modality: Modality = symbol.descriptor.modality
|
modality: Modality = symbol.descriptor.modality,
|
||||||
|
visibility: Visibility = symbol.descriptor.visibility
|
||||||
) :
|
) :
|
||||||
this(
|
this(
|
||||||
startOffset, endOffset, origin, symbol,
|
startOffset, endOffset, origin, symbol,
|
||||||
symbol.descriptor.name, symbol.descriptor.kind,
|
symbol.descriptor.name, symbol.descriptor.kind,
|
||||||
symbol.descriptor.visibility,
|
visibility,
|
||||||
modality = modality,
|
modality = modality,
|
||||||
isCompanion = symbol.descriptor.isCompanionObject,
|
isCompanion = symbol.descriptor.isCompanionObject,
|
||||||
isInner = symbol.descriptor.isInner,
|
isInner = symbol.descriptor.isInner,
|
||||||
|
|||||||
@@ -344,9 +344,9 @@ open class SymbolTable(val mangler: KotlinMangler? = null) : ReferenceSymbolTabl
|
|||||||
|
|
||||||
fun declareClass(
|
fun declareClass(
|
||||||
startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor,
|
startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor,
|
||||||
modality: Modality = descriptor.modality,
|
modality: Modality = descriptor.modality, visibility: Visibility = descriptor.visibility,
|
||||||
classFactory: (IrClassSymbol) -> IrClass = {
|
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 {
|
): IrClass {
|
||||||
return classSymbolTable.declare(
|
return classSymbolTable.declare(
|
||||||
|
|||||||
Reference in New Issue
Block a user