[FIR] Render outer type parameters differently

This commit is contained in:
Nikolay Lunyak
2023-07-27 11:51:48 +03:00
committed by Space Team
parent e4246e8f51
commit c2ad475153
37 changed files with 118 additions and 109 deletions
@@ -269,7 +269,7 @@ class FirRenderer(
}
override fun visitOuterClassTypeParameterRef(outerClassTypeParameterRef: FirOuterClassTypeParameterRef) {
visitTypeParameterRef(outerClassTypeParameterRef)
renderTypeParameter(outerClassTypeParameterRef.symbol.fir, forOuterTypeRef = true)
}
override fun visitConstructedClassTypeParameterRef(constructedClassTypeParameterRef: FirConstructedClassTypeParameterRef) {
@@ -466,11 +466,20 @@ class FirRenderer(
}
override fun visitTypeParameter(typeParameter: FirTypeParameter) {
renderTypeParameter(typeParameter)
}
private fun renderTypeParameter(typeParameter: FirTypeParameter, forOuterTypeRef: Boolean = false) {
annotationRenderer?.render(typeParameter)
modifierRenderer?.renderModifiers(typeParameter)
resolvePhaseRenderer?.render(typeParameter)
typeParameter.variance.renderVariance()
print(typeParameter.name)
if (!forOuterTypeRef) {
print(typeParameter.name)
} else {
print("Outer(${typeParameter.name})")
}
val meaningfulBounds = typeParameter.bounds.filter {
if (it !is FirResolvedTypeRef) return@filter true