committed by
SvyatoslavScherbina
parent
dfc01847c5
commit
627d28db8a
+5
@@ -93,6 +93,7 @@ fun IrClass.getSuperInterfaces() = this.superClasses.map { it.owner }.filter { i
|
||||
|
||||
val IrProperty.konanBackingField: IrField?
|
||||
get() {
|
||||
assert(this.isReal)
|
||||
this.backingField?.let { return it }
|
||||
|
||||
(this.descriptor as? DeserializedPropertyDescriptor)?.backingField?.let { backingFieldDescriptor ->
|
||||
@@ -116,6 +117,10 @@ val IrField.containingClass get() = this.parent as? IrClass
|
||||
|
||||
val IrFunction.isReal get() = this.origin != IrDeclarationOrigin.FAKE_OVERRIDE
|
||||
|
||||
// Note: psi2ir doesn't set `origin = FAKE_OVERRIDE` for fields and properties yet.
|
||||
val IrProperty.isReal: Boolean get() = this.descriptor.kind.isReal
|
||||
val IrField.isReal: Boolean get() = this.descriptor.kind.isReal
|
||||
|
||||
val IrSimpleFunction.isOverridable: Boolean
|
||||
get() = visibility != Visibilities.PRIVATE
|
||||
&& modality != Modality.FINAL
|
||||
|
||||
+2
-2
@@ -127,8 +127,8 @@ private fun Context.getDeclaredFields(classDescriptor: ClassDescriptor): List<Ir
|
||||
val irClass = classDescriptor
|
||||
val fields = irClass.declarations.mapNotNull {
|
||||
when (it) {
|
||||
is IrField -> it
|
||||
is IrProperty -> it.konanBackingField
|
||||
is IrField -> it.takeIf { it.isReal }
|
||||
is IrProperty -> it.takeIf { it.isReal }?.konanBackingField
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user