[FIR2IR] Don't provide backing field symbols for non-Java property refs

This commit is contained in:
Mikhail Glukhikh
2020-03-30 12:16:54 +03:00
parent d4ae992417
commit d1fc6ff6ee
20 changed files with 53 additions and 167 deletions
@@ -51,12 +51,18 @@ internal class CallAndReferenceGenerator(
return callableReferenceAccess.convertWithOffsets { startOffset, endOffset ->
when (symbol) {
is IrPropertySymbol -> {
val referencedProperty = symbol.owner
val referencedPropertyGetter = referencedProperty.getter
val backingFieldSymbol = when {
referencedPropertyGetter != null -> null
else -> referencedProperty.backingField?.symbol
}
IrPropertyReferenceImpl(
startOffset, endOffset, type, symbol,
typeArgumentsCount = symbol.owner.getter?.typeParameters?.size ?: 0,
symbol.owner.backingField?.symbol,
symbol.owner.getter?.symbol,
symbol.owner.setter?.symbol
typeArgumentsCount = referencedPropertyGetter?.typeParameters?.size ?: 0,
backingFieldSymbol,
referencedPropertyGetter?.symbol,
referencedProperty.setter?.symbol
)
}
is IrFunctionSymbol -> {