IR: fix origin of default getter of Enum.entries synthetic property
This commit is contained in:
+3
-2
@@ -854,8 +854,8 @@ class Fir2IrDeclarationStorage(
|
||||
containingClass: ConeClassLikeLookupTag? = (irParent as? IrClass)?.classId?.let { ConeClassLikeLookupTagImpl(it) },
|
||||
forceTopLevelPrivate: Boolean = false,
|
||||
): IrProperty = convertCatching(property) {
|
||||
val origin = if (property.isStatic && property.name in ENUM_SYNTHETIC_NAMES)
|
||||
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER
|
||||
val origin =
|
||||
if (property.isStatic && property.name in ENUM_SYNTHETIC_NAMES) IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER
|
||||
else property.computeIrOrigin(predefinedOrigin)
|
||||
// See similar comments in createIrFunction above
|
||||
val signature =
|
||||
@@ -934,6 +934,7 @@ class Fir2IrDeclarationStorage(
|
||||
getter, property, this, type, irParent, thisReceiverOwner, false,
|
||||
when {
|
||||
origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin
|
||||
origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> origin
|
||||
delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR
|
||||
getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
|
||||
else -> origin
|
||||
|
||||
+2
-1
@@ -170,7 +170,8 @@ internal class ClassMemberGenerator(
|
||||
when {
|
||||
// Create fake bodies for Enum.values/Enum.valueOf
|
||||
irFunction.origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> {
|
||||
val kind = Fir2IrDeclarationStorage.ENUM_SYNTHETIC_NAMES.getValue(irFunction.name)
|
||||
val name = (irFunction as? IrSimpleFunction)?.correspondingPropertySymbol?.owner?.name ?: irFunction.name
|
||||
val kind = Fir2IrDeclarationStorage.ENUM_SYNTHETIC_NAMES.getValue(name)
|
||||
irFunction.body = IrSyntheticBodyImpl(startOffset, endOffset, kind)
|
||||
}
|
||||
irFunction.parent is IrClass && irFunction.parentAsClass.isData -> {
|
||||
|
||||
Reference in New Issue
Block a user