IR: IrPropertySymbol introduced, some code cleaned up

#KT-30304
This commit is contained in:
Dmitry Petrov
2019-02-27 13:56:13 +03:00
parent 1bc35b1b0c
commit 04fad012a0
34 changed files with 345 additions and 170 deletions
@@ -80,7 +80,7 @@ class PrivateMembersLowering(val context: JsIrBackendContext) : ClassLoweringPas
IrPropertyReferenceImpl(
expression.startOffset, expression.endOffset,
expression.type,
expression.descriptor,
expression.symbol, // TODO remap property symbol based on remapped getter/setter?
expression.typeArgumentsCount,
expression.field,
memberMap[expression.getter]?.symbol ?: expression.getter,
@@ -292,6 +292,7 @@ private class IrUnboundSymbolReplacer(
override fun visitPropertyReference(expression: IrPropertyReference): IrExpression {
expression.replaceTypeArguments()
val property = expression.symbol.replaceOrSame(SymbolTable::referenceProperty)
val field = expression.field?.replaceOrSame(SymbolTable::referenceField)
val getter = expression.getter?.replace(SymbolTable::referenceSimpleFunction) ?: expression.getter
val setter = expression.setter?.replace(SymbolTable::referenceSimpleFunction) ?: expression.setter
@@ -302,12 +303,15 @@ private class IrUnboundSymbolReplacer(
expression.transformChildrenVoid(this)
return with(expression) {
IrPropertyReferenceImpl(startOffset, endOffset, type, descriptor, 0,
field,
getter,
setter,
origin).also {
IrPropertyReferenceImpl(
startOffset, endOffset, type,
property,
0,
field,
getter,
setter,
origin
).also {
it.copyArgumentsFrom(this)
it.copyTypeArgumentsFrom(this)
}