IR: symbol for IrLocalDelegatedProperty

This commit is contained in:
Dmitry Petrov
2019-03-21 13:48:44 +03:00
parent aa6ba1cd4a
commit 6ca61cf347
15 changed files with 128 additions and 34 deletions
@@ -319,6 +319,7 @@ private class IrUnboundSymbolReplacer(
}
override fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference): IrExpression {
val localDelegatedProperty = expression.symbol.replaceOrSame(SymbolTable::referenceLocalDelegatedProperty)
val delegate = expression.delegate.replaceOrSame(SymbolTable::referenceVariable)
val getter = expression.getter.replace(SymbolTable::referenceSimpleFunction) ?: expression.getter
val setter = expression.setter?.replace(SymbolTable::referenceSimpleFunction) ?: expression.setter
@@ -329,9 +330,11 @@ private class IrUnboundSymbolReplacer(
expression.transformChildrenVoid(this)
return with(expression) {
IrLocalDelegatedPropertyReferenceImpl(startOffset, endOffset, type, descriptor,
delegate, getter, setter, origin).also {
IrLocalDelegatedPropertyReferenceImpl(
startOffset, endOffset, type,
localDelegatedProperty,
delegate, getter, setter, origin
).also {
it.copyArgumentsFrom(this)
}
}