[kotlin] KTIJ-33966 outer class access simplified

(cherry picked from commit 7ae6ce72c1569785b3335fa0705907fb0cab23c3)

IJ-CR-168804

GitOrigin-RevId: 749028f5734c23f288bb6661748f6a0d6906edd5
This commit is contained in:
Andrew Kozlov
2025-07-10 18:06:06 +02:00
committed by intellij-monorepo-bot
parent 82bdd4be8a
commit c87323b58e

View File

@@ -261,16 +261,15 @@ internal object CallableMetadataProvider {
context(KaSession)
@OptIn(KaExperimentalApi::class)
private fun buildClassType(symbol: KaClassLikeSymbol): KaType = buildClassType(symbol) {
val parentTypeParameterCount = symbol.classId
?.parentClassId
?.let { findClass(it) }
?.defaultType
?.expandedSymbol
?.typeParameters
?.size ?: 0
val containingSymbol = if (symbol is KaNamedClassSymbol && symbol.isInner)
symbol.containingDeclaration as? KaClassSymbol
else
null
val times = (containingSymbol?.typeParameters?.size ?: 0) +
symbol.typeParameters.size
@OptIn(KaExperimentalApi::class)
repeat(parentTypeParameterCount + symbol.typeParameters.size) {
repeat(times) {
argument(buildStarTypeProjection())
}
}