backend: support IrField located directly at IrClass

This commit is contained in:
Svyatoslav Scherbina
2017-01-19 13:37:16 +07:00
committed by SvyatoslavScherbina
parent eb6ba1cfa5
commit 97b5c60455
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
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.IrModuleFragment
import org.jetbrains.kotlin.name.FqName
@@ -76,10 +77,14 @@ internal interface ContextUtils {
val irClass = context.ir.moduleIndex.classes[this.classId]
if (irClass != null) {
val irProperties = irClass.declarations
val declarations = irClass.declarations
return irProperties.mapNotNull {
(it as? IrProperty)?.backingField?.descriptor
return declarations.mapNotNull {
when (it) {
is IrProperty -> it.backingField?.descriptor
is IrField -> it.descriptor
else -> null
}
}
} else {
val properties = this.unsubstitutedMemberScope.