FirProperty: return back 'isReferredViaField' attribute
This commit is contained in:
+1
-1
@@ -679,7 +679,7 @@ class Fir2IrDeclarationStorage(
|
|||||||
if (initializer != null ||
|
if (initializer != null ||
|
||||||
getter is FirDefaultPropertyGetter ||
|
getter is FirDefaultPropertyGetter ||
|
||||||
property.isVar && setter is FirDefaultPropertySetter ||
|
property.isVar && setter is FirDefaultPropertySetter ||
|
||||||
property.backingFieldSymbol.isReferenced
|
property.isReferredViaField == true
|
||||||
) {
|
) {
|
||||||
backingField = createBackingField(
|
backingField = createBackingField(
|
||||||
property, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, descriptor,
|
property, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, descriptor,
|
||||||
|
|||||||
@@ -6,10 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir
|
package org.jetbrains.kotlin.fir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
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.diagnostics.ConeDiagnostic
|
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionStub
|
import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionStub
|
||||||
@@ -515,7 +512,7 @@ class FirCallResolver(
|
|||||||
val candidate = candidates.single()
|
val candidate = candidates.single()
|
||||||
val coneSymbol = candidate.symbol
|
val coneSymbol = candidate.symbol
|
||||||
if (coneSymbol is FirBackingFieldSymbol) {
|
if (coneSymbol is FirBackingFieldSymbol) {
|
||||||
coneSymbol.isReferenced = true
|
coneSymbol.fir.isReferredViaField = true
|
||||||
return buildBackingFieldReference {
|
return buildBackingFieldReference {
|
||||||
this.source = source
|
this.source = source
|
||||||
resolvedSymbol = coneSymbol
|
resolvedSymbol = coneSymbol
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ fun FirRegularClass.addDeclaration(declaration: FirDeclaration) {
|
|||||||
|
|
||||||
private object IsFromVarargKey : FirDeclarationDataKey()
|
private object IsFromVarargKey : FirDeclarationDataKey()
|
||||||
var FirProperty.isFromVararg: Boolean? by FirDeclarationDataRegistry.data(IsFromVarargKey)
|
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
|
inline val FirProperty.hasJvmFieldAnnotation: Boolean
|
||||||
get() = annotations.any {
|
get() = annotations.any {
|
||||||
|
|||||||
@@ -32,10 +32,7 @@ open class FirPropertySymbol(
|
|||||||
constructor(name: Name) : this(CallableId(name))
|
constructor(name: Name) : this(CallableId(name))
|
||||||
}
|
}
|
||||||
|
|
||||||
class FirBackingFieldSymbol(
|
class FirBackingFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirProperty>(callableId)
|
||||||
callableId: CallableId,
|
|
||||||
var isReferenced: Boolean = false
|
|
||||||
) : FirVariableSymbol<FirProperty>(callableId)
|
|
||||||
|
|
||||||
class FirDelegateFieldSymbol<D : FirVariable<D>>(callableId: CallableId) : FirVariableSymbol<D>(callableId) {
|
class FirDelegateFieldSymbol<D : FirVariable<D>>(callableId: CallableId) : FirVariableSymbol<D>(callableId) {
|
||||||
val delegate: FirExpression
|
val delegate: FirExpression
|
||||||
|
|||||||
Reference in New Issue
Block a user