[FIR2IR] Use backing field to read property if no getter
This commit is contained in:
+7
-5
@@ -65,11 +65,13 @@ internal class CallGenerator(
|
||||
)
|
||||
symbol is IrPropertySymbol && symbol.isBound -> {
|
||||
val getter = symbol.owner.getter
|
||||
if (getter != null) {
|
||||
IrCallImpl(startOffset, endOffset, type, getter.symbol, origin = IrStatementOrigin.GET_PROPERTY)
|
||||
} else {
|
||||
IrErrorCallExpressionImpl(
|
||||
startOffset, endOffset, type, "No getter found for ${qualifiedAccess.calleeReference.render()}"
|
||||
val backingField = symbol.owner.backingField
|
||||
when {
|
||||
getter != null -> IrCallImpl(startOffset, endOffset, type, getter.symbol, origin = IrStatementOrigin.GET_PROPERTY)
|
||||
backingField != null -> IrGetFieldImpl(startOffset, endOffset, backingField.symbol, type)
|
||||
else -> IrErrorCallExpressionImpl(
|
||||
startOffset, endOffset, type,
|
||||
description = "No getter or backing field found for ${qualifiedAccess.calleeReference.render()}"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user