Introduce correspondingProperty to IrField
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user