[AA] KT-56617 Don't defer to firSymbol for empty annotation lists

- `FirJavaClass` gets all its annotations from the Java annotations, so
  we can rely on `javaClass.annotations` to determine if any annotations
  are present.
This commit is contained in:
Marco Pennekamp
2023-02-28 13:47:59 +01:00
committed by Space Team
parent 0b98192cb0
commit 46d443770e
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KtEmptyAnnotationsList
import org.jetbrains.kotlin.analysis.api.impl.base.symbols.toKtClassKind
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
@@ -112,7 +113,8 @@ internal class KtFirPsiJavaClassSymbol(
}
override val annotationsList: KtAnnotationsList by cached {
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
if (javaClass.annotations.isEmpty()) KtEmptyAnnotationsList(token)
else KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
}
context(KtAnalysisSession)