From 1f7776981dd395ed576c57a3532a098cfadf1486 Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Mon, 13 Aug 2018 19:29:16 +0300 Subject: [PATCH] Introduce correspondingProperty to IrField --- .../ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt | 1 + .../org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt | 2 ++ .../src/org/jetbrains/kotlin/ir/util/PatchDeclarationParents.kt | 1 + 3 files changed, 4 insertions(+) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt index 220b24428c7..8f9f68b3612 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrField.kt @@ -23,4 +23,5 @@ interface IrField : IrSymbolDeclaration { val isStatic: Boolean var initializer: IrExpressionBody? + var correspondingProperty: IrProperty? } \ No newline at end of file diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt index a52e7a5c509..10d6d11ad2d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt @@ -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 accept(visitor: IrElementVisitor, data: D): R { return visitor.visitField(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/PatchDeclarationParents.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/PatchDeclarationParents.kt index 071f210aa27..047d5a94b5e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/PatchDeclarationParents.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/PatchDeclarationParents.kt @@ -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) }