diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirPsiTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirPsiTypeProvider.kt index bbada4dd898..2d9e245f816 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirPsiTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirPsiTypeProvider.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.analysis.api.fir.types.PublicTypeApproximator import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode -import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.codegen.signature.BothSignatureWriter @@ -27,7 +26,6 @@ import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.java.JavaVisibilities import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClassSymbol import org.jetbrains.kotlin.fir.backend.jvm.jvmTypeMapper import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.substitution.AbstractConeSubstitutor @@ -114,7 +112,7 @@ private fun ConeKotlinType.needLocalTypeApproximation( session: FirSession, useSitePosition: PsiElement ): Boolean { - if (!shouldHideLocalType(visibilityForApproximation, isInlineFunction)) return false + if (!shouldApproximateLocalTypesOfNonLocalDeclaration(visibilityForApproximation, isInlineFunction)) return false val localTypes: List = if (isLocal(session)) listOf(this) else { typeArguments.mapNotNull { if (it is ConeKotlinTypeProjection && it.type.isLocal(session)) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt index e7241049f87..1130ccc5098 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAmbiguousAnonymousTypeChecker.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.isInline import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousObjectSymbol import org.jetbrains.kotlin.fir.types.coneType -import org.jetbrains.kotlin.fir.types.shouldHideLocalType +import org.jetbrains.kotlin.fir.types.shouldApproximateLocalTypesOfNonLocalDeclaration import org.jetbrains.kotlin.fir.types.toSymbol import org.jetbrains.kotlin.fir.types.visibilityForApproximation @@ -23,7 +23,7 @@ object FirAmbiguousAnonymousTypeChecker : FirBasicDeclarationChecker() { require(declaration is FirCallableDeclaration) if (context.containingDeclarations.any { it.isLocalMember || it is FirAnonymousObject }) return - if (!shouldHideLocalType( + if (!shouldApproximateLocalTypesOfNonLocalDeclaration( declaration.visibilityForApproximation(context.containingDeclarations.lastOrNull()), declaration.isInline ) @@ -42,4 +42,4 @@ object FirAmbiguousAnonymousTypeChecker : FirBasicDeclarationChecker() { ) } } -} \ No newline at end of file +} diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt index 73409bd409c..b3003ed4238 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt @@ -385,7 +385,7 @@ private fun FirTypeRef.hideLocalTypeIfNeeded( session: FirSession, isInlineFunction: Boolean = false ): FirTypeRef { - if (this !is FirResolvedTypeRef || !shouldHideLocalType(containingCallableVisibility, isInlineFunction)) return this + if (this !is FirResolvedTypeRef || !shouldApproximateLocalTypesOfNonLocalDeclaration(containingCallableVisibility, isInlineFunction)) return this return withReplacedConeType(type.approximateToOnlySupertype(session)) } @@ -425,7 +425,7 @@ private fun ConeKotlinType.approximateToOnlySupertype(session: FirSession): Cone return result } -fun shouldHideLocalType(containingCallableVisibility: Visibility?, isInlineFunction: Boolean): Boolean { +fun shouldApproximateLocalTypesOfNonLocalDeclaration(containingCallableVisibility: Visibility?, isInlineFunction: Boolean): Boolean { if (containingCallableVisibility == null) { return false }