[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 -> {
|
symbol is IrPropertySymbol && symbol.isBound -> {
|
||||||
val getter = symbol.owner.getter
|
val getter = symbol.owner.getter
|
||||||
if (getter != null) {
|
val backingField = symbol.owner.backingField
|
||||||
IrCallImpl(startOffset, endOffset, type, getter.symbol, origin = IrStatementOrigin.GET_PROPERTY)
|
when {
|
||||||
} else {
|
getter != null -> IrCallImpl(startOffset, endOffset, type, getter.symbol, origin = IrStatementOrigin.GET_PROPERTY)
|
||||||
IrErrorCallExpressionImpl(
|
backingField != null -> IrGetFieldImpl(startOffset, endOffset, backingField.symbol, type)
|
||||||
startOffset, endOffset, type, "No getter found for ${qualifiedAccess.calleeReference.render()}"
|
else -> IrErrorCallExpressionImpl(
|
||||||
|
startOffset, endOffset, type,
|
||||||
|
description = "No getter or backing field found for ${qualifiedAccess.calleeReference.render()}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user