From 754e17a28fa0aa88c504bdf31237ad5c01100d9d Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 29 Sep 2020 20:04:38 +0300 Subject: [PATCH] FIR2IR: Fix checking if accessor is allowed to have fake override --- .../kotlin/fir/backend/generators/FakeOverrideGenerator.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index 7a29ce2aed9..2c00ef83086 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.symbols.PossiblyFirFakeOverrideSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol +import org.jetbrains.kotlin.fir.symbols.impl.unwrapSubstitutionOverrides import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol @@ -228,12 +229,13 @@ class FakeOverrideGenerator( private fun IrProperty.discardAccessorsAccordingToBaseVisibility(baseSymbols: List) { for (baseSymbol in baseSymbols) { + val unwrapped = baseSymbol.unwrapSubstitutionOverrides() // Do not create fake overrides for accessors if not allowed to do so, e.g., private lateinit var. - if (baseSymbol.fir.getter?.allowsToHaveFakeOverride != true) { + if (unwrapped.fir.getter?.allowsToHaveFakeOverride != true) { getter = null } // or private setter - if (baseSymbol.fir.setter?.allowsToHaveFakeOverride != true) { + if (unwrapped.fir.setter?.allowsToHaveFakeOverride != true) { setter = null } }