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.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.