Introduce correspondingProperty to IrField

This commit is contained in:
Georgy Bronnikov
2018-08-13 19:29:16 +03:00
parent ebf8ec455d
commit 1f7776981d
3 changed files with 4 additions and 0 deletions
@@ -23,4 +23,5 @@ interface IrField : IrSymbolDeclaration<IrFieldSymbol> {
val isStatic: Boolean
var initializer: IrExpressionBody?
var correspondingProperty: IrProperty?
}
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.IrField
import org.jetbrains.kotlin.ir.declarations.IrProperty
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl
@@ -86,6 +87,7 @@ class IrFieldImpl(
override val descriptor: PropertyDescriptor = symbol.descriptor
override var initializer: IrExpressionBody? = null
override var correspondingProperty: IrProperty? = null
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
return visitor.visitField(this, data)
@@ -56,6 +56,7 @@ class PatchDeclarationParentsVisitor() : IrElementVisitorVoid {
override fun visitProperty(declaration: IrProperty) {
declaration.getter?.let { it.correspondingProperty = declaration }
declaration.setter?.let { it.correspondingProperty = declaration }
declaration.backingField?.let { it.correspondingProperty = declaration }
super.visitProperty(declaration)
}