[FIR] Skip published visibility computation for local functions

This fixes an exception caused by annotations being unresolved during
 status computation.

#KT-61367
This commit is contained in:
Kirill Rakhman
2023-09-12 17:09:49 +02:00
committed by Space Team
parent f0112040fc
commit 126f2c9440
@@ -290,6 +290,8 @@ class FirStatusResolver(
containingClass?.symbol?.toLookupTag(), forClass = declaration is FirClass containingClass?.symbol?.toLookupTag(), forClass = declaration is FirClass
) )
val effectiveVisibility = parentEffectiveVisibility.lowerBound(selfEffectiveVisibility, session.typeContext) val effectiveVisibility = parentEffectiveVisibility.lowerBound(selfEffectiveVisibility, session.typeContext)
if (!isLocal) {
val annotations = (containingProperty ?: declaration).annotations val annotations = (containingProperty ?: declaration).annotations
val parentPublishedEffectiveVisibility = when { val parentPublishedEffectiveVisibility = when {
containingProperty != null -> containingProperty.publishedApiEffectiveVisibility containingProperty != null -> containingProperty.publishedApiEffectiveVisibility
@@ -309,6 +311,7 @@ class FirStatusResolver(
)?.let { )?.let {
declaration.nonLazyPublishedApiEffectiveVisibility = it declaration.nonLazyPublishedApiEffectiveVisibility = it
} }
}
if (containingClass is FirRegularClass && containingClass.isExpect) { if (containingClass is FirRegularClass && containingClass.isExpect) {
status.isExpect = true status.isExpect = true