K2: fix field annotation splitting and frontend checks

Related to KT-57135
This commit is contained in:
Mikhail Glukhikh
2023-03-22 16:13:51 +01:00
committed by Space Team
parent 37ed7beda0
commit dc38ce24f7
43 changed files with 497 additions and 119 deletions
@@ -199,6 +199,13 @@ class FirRenderer(
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
renderContexts(callableDeclaration.contextReceivers)
annotationRenderer?.render(callableDeclaration)
if (callableDeclaration is FirProperty) {
val backingField = callableDeclaration.backingField
if (backingField?.annotations?.isNotEmpty() == true) {
print("field:")
annotationRenderer?.render(backingField)
}
}
visitMemberDeclaration(callableDeclaration)
val receiverParameter = callableDeclaration.receiverParameter
if (callableDeclaration !is FirProperty || callableDeclaration.isCatchParameter != true) {
@@ -38,6 +38,12 @@ open class FirPropertySymbol(
val delegateFieldSymbol: FirDelegateFieldSymbol?
get() = fir.delegateFieldSymbol
val delegate: FirExpression?
get() = fir.delegate
val hasDelegate: Boolean
get() = fir.delegate != null
val hasInitializer: Boolean
get() = fir.initializer != null
@@ -47,9 +53,6 @@ open class FirPropertySymbol(
return fir.initializer
}
val hasDelegate: Boolean
get() = fir.delegate != null
val controlFlowGraphReference: FirControlFlowGraphReference?
get() {
lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)