[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:
committed by
Space Team
parent
f0112040fc
commit
126f2c9440
+20
-17
@@ -290,24 +290,27 @@ 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)
|
||||||
val annotations = (containingProperty ?: declaration).annotations
|
|
||||||
val parentPublishedEffectiveVisibility = when {
|
|
||||||
containingProperty != null -> containingProperty.publishedApiEffectiveVisibility
|
|
||||||
containingClass is FirRegularClass -> containingClass.publishedApiEffectiveVisibility
|
|
||||||
else -> null
|
|
||||||
}
|
|
||||||
|
|
||||||
computePublishedApiEffectiveVisibility(
|
if (!isLocal) {
|
||||||
annotations,
|
val annotations = (containingProperty ?: declaration).annotations
|
||||||
visibility,
|
val parentPublishedEffectiveVisibility = when {
|
||||||
selfEffectiveVisibility,
|
containingProperty != null -> containingProperty.publishedApiEffectiveVisibility
|
||||||
containingClass?.symbol,
|
containingClass is FirRegularClass -> containingClass.publishedApiEffectiveVisibility
|
||||||
parentEffectiveVisibility,
|
else -> null
|
||||||
parentPublishedEffectiveVisibility,
|
}
|
||||||
declaration is FirClass,
|
|
||||||
session
|
computePublishedApiEffectiveVisibility(
|
||||||
)?.let {
|
annotations,
|
||||||
declaration.nonLazyPublishedApiEffectiveVisibility = it
|
visibility,
|
||||||
|
selfEffectiveVisibility,
|
||||||
|
containingClass?.symbol,
|
||||||
|
parentEffectiveVisibility,
|
||||||
|
parentPublishedEffectiveVisibility,
|
||||||
|
declaration is FirClass,
|
||||||
|
session
|
||||||
|
)?.let {
|
||||||
|
declaration.nonLazyPublishedApiEffectiveVisibility = it
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (containingClass is FirRegularClass && containingClass.isExpect) {
|
if (containingClass is FirRegularClass && containingClass.isExpect) {
|
||||||
|
|||||||
Reference in New Issue
Block a user