backend: support IrField located directly at IrClass
This commit is contained in:
committed by
SvyatoslavScherbina
parent
eb6ba1cfa5
commit
97b5c60455
+8
-3
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrField
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrProperty
|
import org.jetbrains.kotlin.ir.declarations.IrProperty
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -76,10 +77,14 @@ internal interface ContextUtils {
|
|||||||
|
|
||||||
val irClass = context.ir.moduleIndex.classes[this.classId]
|
val irClass = context.ir.moduleIndex.classes[this.classId]
|
||||||
if (irClass != null) {
|
if (irClass != null) {
|
||||||
val irProperties = irClass.declarations
|
val declarations = irClass.declarations
|
||||||
|
|
||||||
return irProperties.mapNotNull {
|
return declarations.mapNotNull {
|
||||||
(it as? IrProperty)?.backingField?.descriptor
|
when (it) {
|
||||||
|
is IrProperty -> it.backingField?.descriptor
|
||||||
|
is IrField -> it.descriptor
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val properties = this.unsubstitutedMemberScope.
|
val properties = this.unsubstitutedMemberScope.
|
||||||
|
|||||||
Reference in New Issue
Block a user