[FIR] Expand type alias when checking for type parameters from outer declaration

This fixes a false positive OUTER_CLASS_ARGUMENTS_REQUIRED when
referring to an inner class of a supertype that is extended using a
typealias.

#KT-62099 Fixed
This commit is contained in:
Kirill Rakhman
2023-10-24 11:01:17 +02:00
committed by Space Team
parent 907ebb36d0
commit 8821f8d1a4
8 changed files with 74 additions and 4 deletions
@@ -57,10 +57,9 @@ fun isValidTypeParameterFromOuterDeclaration(
return containsTypeParameter(session.symbolProvider.getClassLikeSymbolByClassId(containingClassId)?.fir)
} else if (currentDeclaration is FirClass) {
for (superTypeRef in currentDeclaration.superTypeRefs) {
val superClassFir = superTypeRef.firClassLike(session)
if (superClassFir == null || superClassFir is FirRegularClass && containsTypeParameter(superClassFir)) {
return true
}
val superClassFir = superTypeRef.firClassLike(session) ?: return true
if (superClassFir is FirRegularClass && containsTypeParameter(superClassFir)) return true
if (superClassFir is FirTypeAlias && containsTypeParameter(superClassFir.fullyExpandedClass(session))) return true
}
}
}