[FIR] Add the missing transformPropertyAccessor override
Otherwise, `transformPropertyAccessor` from `FirDeclarationsResolveTransformerForArgumentAnnotations` is never called See: - compiler/testData/asJava/ultraLightFacades/properties.kt - analysis/analysis-api/testData/symbols/symbolByPsi/ contextReceivers/contextReceiversOnProperty.kt
This commit is contained in:
+1
-1
@@ -65,7 +65,7 @@ private fun collectDesignationPath(declaration: FirDeclaration): List<FirDeclara
|
||||
if (declaration !is FirConstructor && declaration.symbol.callableId.isLocal) return null
|
||||
if ((declaration as? FirCallableDeclaration)?.status?.visibility == Visibilities.Local) return null
|
||||
when (declaration) {
|
||||
is FirSimpleFunction, is FirProperty, is FirField, is FirConstructor, is FirEnumEntry -> {
|
||||
is FirSimpleFunction, is FirProperty, is FirField, is FirConstructor, is FirEnumEntry, is FirPropertyAccessor -> {
|
||||
val klass = declaration.containingClassLookupTag() ?: return emptyList()
|
||||
if (klass.classId.isLocal) return null
|
||||
klass.toFirRegularClassFromSameSession(declaration.moduleData.session)
|
||||
|
||||
+5
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.getExplicitBackingField
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirLazyBlock
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirLazyExpression
|
||||
@@ -174,4 +175,8 @@ private object FirLazyBodiesCalculatorTransformer : FirTransformer<PersistentLis
|
||||
}
|
||||
return property
|
||||
}
|
||||
|
||||
override fun transformPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: PersistentList<FirDeclaration>): FirStatement {
|
||||
return propertyAccessor.also { transformProperty(it.propertySymbol.fir, data) }
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ internal fun checkDeclarationStatusIsResolved(declaration: FirMemberDeclaration)
|
||||
val status = declaration.status
|
||||
checkWithAttachmentBuilder(
|
||||
condition = status is FirResolvedDeclarationStatus,
|
||||
message = { "Expected ${FirResolvedDeclarationStatus::class.simpleName} but ${declaration::class.simpleName} found for ${declaration::class.simpleName}" }
|
||||
message = { "Expected ${FirResolvedDeclarationStatus::class.simpleName} but ${status::class.simpleName} found for ${declaration::class.simpleName}" }
|
||||
) {
|
||||
withFirEntry("declaration", declaration)
|
||||
}
|
||||
|
||||
+4
@@ -525,6 +525,10 @@ abstract class AbstractFirStatusResolveTransformer(
|
||||
return transformDeclaration(field, data) as FirField
|
||||
}
|
||||
|
||||
override fun transformPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: FirResolvedDeclarationStatus?): FirStatement {
|
||||
return propertyAccessor.also { transformProperty(it.propertySymbol.fir, data) }
|
||||
}
|
||||
|
||||
override fun transformEnumEntry(
|
||||
enumEntry: FirEnumEntry,
|
||||
data: FirResolvedDeclarationStatus?
|
||||
|
||||
+4
@@ -282,6 +282,10 @@ open class FirBodyResolveTransformer(
|
||||
return declarationsTransformer.transformProperty(property, data)
|
||||
}
|
||||
|
||||
override fun transformPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: ResolutionMode): FirStatement {
|
||||
return declarationsTransformer.transformPropertyAccessor(propertyAccessor, data)
|
||||
}
|
||||
|
||||
override fun transformBackingField(
|
||||
backingField: FirBackingField,
|
||||
data: ResolutionMode
|
||||
|
||||
+6
@@ -298,6 +298,12 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
|
||||
}
|
||||
}
|
||||
|
||||
override fun transformPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: ResolutionMode): FirStatement {
|
||||
return propertyAccessor.also {
|
||||
transformProperty(it.propertySymbol.fir, data)
|
||||
}
|
||||
}
|
||||
|
||||
override fun transformWrappedDelegateExpression(
|
||||
wrappedDelegateExpression: FirWrappedDelegateExpression,
|
||||
data: ResolutionMode,
|
||||
|
||||
Reference in New Issue
Block a user