diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 6af2d970448..3e5446e2cf5 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -679,7 +679,7 @@ class Fir2IrDeclarationStorage( if (initializer != null || getter is FirDefaultPropertyGetter || property.isVar && setter is FirDefaultPropertySetter || - property.backingFieldSymbol.isReferenced + property.isReferredViaField == true ) { backingField = createBackingField( property, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, descriptor, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index c20fc2e864a..f06e5f820c9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -6,10 +6,7 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration -import org.jetbrains.kotlin.fir.declarations.FirRegularClass -import org.jetbrains.kotlin.fir.declarations.FirTypeParameter -import org.jetbrains.kotlin.fir.declarations.isInner +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionStub @@ -515,7 +512,7 @@ class FirCallResolver( val candidate = candidates.single() val coneSymbol = candidate.symbol if (coneSymbol is FirBackingFieldSymbol) { - coneSymbol.isReferenced = true + coneSymbol.fir.isReferredViaField = true return buildBackingFieldReference { this.source = source resolvedSymbol = coneSymbol diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt index 063cb5c26ef..e6632573ce3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt @@ -116,6 +116,8 @@ fun FirRegularClass.addDeclaration(declaration: FirDeclaration) { private object IsFromVarargKey : FirDeclarationDataKey() var FirProperty.isFromVararg: Boolean? by FirDeclarationDataRegistry.data(IsFromVarargKey) +private object IsReferredViaField : FirDeclarationDataKey() +var FirProperty.isReferredViaField: Boolean? by FirDeclarationDataRegistry.data(IsReferredViaField) inline val FirProperty.hasJvmFieldAnnotation: Boolean get() = annotations.any { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt index c6af0af9aa1..2d776e76ebf 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt @@ -32,10 +32,7 @@ open class FirPropertySymbol( constructor(name: Name) : this(CallableId(name)) } -class FirBackingFieldSymbol( - callableId: CallableId, - var isReferenced: Boolean = false -) : FirVariableSymbol(callableId) +class FirBackingFieldSymbol(callableId: CallableId) : FirVariableSymbol(callableId) class FirDelegateFieldSymbol>(callableId: CallableId) : FirVariableSymbol(callableId) { val delegate: FirExpression